GO语言学习笔记1(基本概念,条件循环语句)

来源:互联网 发布:matlab编程作业答案 编辑:程序博客网 时间:2024/04/27 19:19

今天开始学习GO语言,下面是我的学习笔记

1.首先是基本的格式,package, main func和print。

package mainimport "fmt"func main() {fmt.Println("Hello, 世界")}

import (
"fmt"
"math/rand"
)

使用是使用rand.Intn(10)调用。

下面是函数的定义

func add(x int, y int) int {
return x + y
}

也可以写作

func add(x, y int) int {
return x + y
}

同时函数也可以有两个返回值return x, y 然后使用a, b := swap("hello", "world")


如果提前定义了返回的变量名称,则直接return即可

func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}

变量的声明和初始化

var i, j int = 1, 2
k := 3

print也可以输出多个变量 fmt.Println(i, j, c, python, java)


2. 基本类型

bool


string


int  int8  int16  int32  int64
uint uint8 uint16 uint32 uint64 uintptr


byte // alias for uint8


rune // alias for int32
     // represents a Unicode code point


float32 float64


complex64 complex128


类型的强制转换不同于Java,使用int(i)进行


常量定义const Pi = 3.14,不使用:=


声明多个常量或者变量都可以使用 var () 和 const ()


Go里只有for 一种循环

for i := 0; i < 10; i++ {
sum += i
}

for 也可以当成 while使用

for sum < 1000 {
sum += sum
}

也可以 for ; x<1;{} 和 for {}


条件语句

if x < 3 {}

if v := math.Pow(x, n); v < lim {
return v
}

switch os := runtime.GOOS; os {
case "darwin":
fmt.Println("OS X.")
case "linux":
fmt.Println("Linux.")
default:
// freebsd, openbsd,
// plan9, windows...
fmt.Printf("%s.", os)
}

如果switch为空则类似于if

t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("Good morning!")
case t.Hour() <= 23:
fmt.Println("Good afternoon.")
default:
fmt.Println("Good evening.", t)
}

defer func,上一层返回后在执行,先进后出,下面输出为counting done 9 8 7 6 5 4 3 2 1 0

func main() {
fmt.Println("counting")

for i := 0; i < 10; i++ {
defer fmt.Println(i)
}


fmt.Println("done")
}



0 0
原创粉丝点击