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

你可能感兴趣的:(go语言)