zoukankan      html  css  js  c++  java
  • 【自用】【流水账儿】Go学习笔记

    11.5

    fmt.Printf:类似C的printf:fmt.Printf("%d",n),不自动换行

    fmt.Println:直接输出内容:fmt.Println(n),fmt.Println("helloworld"),自动换行

    从import带入的函数的格式:包名.函数名。函数名首字母大写。

    go自带函数无包名,首字母小写。eg:printf

    for不带括号,当不写分号时,for当while用。

    BWtWsf.png(惊不惊喜,意不意外?

    !注意:for和if都必须要带{},并且大括号不换行

    switch自带break,不用再手写break。想关闭break用fallthrough

    go的switch可以不带参数,在case中写条件表达式;c不行。

    todo:指针

    11.6

    指针: var p *int:定义指针p

    &x:x的地址

    *p:p的底层值

    结构体:

    type emm struct{
      var x,y int
    }
    func main(){
      var a emm{}
      var b emm{1,0}
      var c emm{x,0}
      var d &emm{1,0}
    }
    

      

      

    数组:

    var a [10]int

    切片:左开右闭

    var s []int = a[1:4]  //s:{a[1],a[2],a[3]},坐标从0开始

    切片就像数组的引用

    切片并不存储任何数据,它只是描述了底层数组中的一段。

     11.7

     对“引用”的一个很好的例子:

    BIKniR.png//len:切片所包含的元素个数;cap:从切片的第一个元素开始数,到其底层数组元素末尾的个数。

    但是感觉指令不明确...s[0:]是指延长到从0开始,还是从当前的0开始截呢?

    s==[]    等价于 s==nil

    声明切片的make语句:

    a:=make([]int,x)//x=len=cap

    a:=make([]int,x,y)//x=len,y=cap

    二维切片:

    board:=[][]int{
      []int,
      []int,
      []int,
    }
    

     

    11.11

    append:在切片尾部加元素

        s := make([]int,5)//建一个长为5的切片
        s = append(s,1)//在s后面加一个元素1
        //注意:只能加切片的元素,不能用于切片连接
    

      

    range:遍历

     

        s := []int{2,4,6,8,10}
        for i,v := range s{//i,v可用_替换
            fmt.Println(i,v)  
        }
    

      

    二维切片的循环建立:

        s := make([][]int , y)
        for i:=1 ; i <= y; i++{
        s[i] = make ([]int , x)
        }
    

     Bqz3VI.png//slice练习:创建二维切片,在x*y切片内每格赋值

    11.12

    map:

        m := make(map[string]int)
        m["Bob"]=2333
        v := m["Bob"]//v=2333
        v1,ok := m["Bob"]//v1=2333 , ok用于检测"Bob"是否存在(true/false)
        delete(m,"Bob")
    

      

     //map练习:用string.Fields函数,获得一个map,装有字符串s的每个单词出现个数。

     11.13

    函数的闭包

    就硬莽。

    //pos和neg函数的sum相互独立

    //返回斐波那契数列的闭包

    11.17

    方法

    好像可以用来替代class,但我本来也不会用class(

    相当于

     指针接收者:

    直接写函数->必须确定指针or值

    写指针接收者->写指针or值都可

     

     写成指针接收者貌似是个好习惯。

    接口

    不太能理解。

     11.18

  • 相关阅读:
    【死磕Java并发】—–J.U.C之AQS(一篇就够了)
    Java并发包基石-AQS详解
    java并发api总结
    用Java对CSV文件进行读写操作
    多线程批量检测未注册域名
    RSA公钥、私钥、签名和验签
    ASCII,Unicode和UTF-8终于找到一个能完全搞清楚的文章了
    Java 常用工具类---- 各种字符集编码判断与转换
    JavaMail| JavaMail配置属性
    QT下的几种透明效果(QPalette背景白色,窗口设置setWindowOpacity,QPainter使用Clear模式绘图)
  • 原文地址:https://www.cnblogs.com/qwerta/p/13934437.html
Copyright © 2011-2022 走看看