• go语言编程


    package 指明源文件所在的包

    func 用于定义函数

    go里面除了for循环的初始化用到;,其他大部分都不需要


    go中没有while循环,不过可以利用 for condition来模拟while

    编译:

    go builde 编译的文件名

    定义一个变量,比如字符串

    var s string = ""

    go也自动推导出类型

    var s = "";

    也可以 s:=""

    :=用在值声明并且初始化

    05    package main
    
    07    import (
    08        "os"
    09        "flag"  // command line option parser
    10    )
    
    
    12    var omitNewline = flag.Bool("n", false, "don't print final newline")
    
    
    14    const (
    15        Space = " "
    16        Newline = "\n"
    17    )
    
    
    19    func main() {
    20        flag.Parse()   // Scans the arg list and sets up flags
    21        var s string = ""
    22        for i := 0; i < flag.NArg(); i++ {
    23            if i > 0 {
    24                s += Space
    25            }
    26            s += flag.Arg(i)
    27        }
    28        if !*omitNewline {
    29            s += Newline
    30        }
    31        os.Stdout.WriteString(s)
    32    }
    

      

    go语言除了C有的int ,float,还有int8,int32,int32跟int同样大小,但是跟int不同,byte跟int8同样大小,类型也一样

    s:="string"有点类似于C语言的char *str = "string",这样是不允许修改字符串内容的,只能更改str的指向

    如果要创建可以修改的字符串,必须使用数组

    声明一个数组 s:= []int{1,2,3}

    var arrayOfInt [3] int{1,2,3},定义数组,不过arrayofint不能退化成指针

    a:= [2][2]int{ [2]int{1,2},[2]int{3,4}}

    slice

    s:= [3]int{1,2,3};

    sl = s[1:2];

    fmt.Printf("%d\n",sl[0])

    输出是2

    go中的map要使用make来创建

    可以用range来遍历数组,map,slice

    for _;days = range monthdays {

    fmt.Printf("%d\n",days);

    }

    函数:

    def func(xs []int)

    这个函数是传入一个splite而不是数组,在使用这个函数的时候:fun(array[:])而不是func(array),会提示无法把array转化为 []int

  • 相关阅读:
    多线程22:线程池
    多线程21:信号灯法
    多线程20:管程法
    多线程19:生产者消费者模式
    多线程18:Lock锁
    多线程17:死锁
    多线程16:CopyOnWriteArrayList
    多线程15:线程同步
    多线程14:三大不安全案例
    业余草 maven异常:Updating Maven Project 的统一解决方案
  • 原文地址:https://www.cnblogs.com/linyilong3/p/3040723.html
Copyright © 2020-2023  润新知