GO语言学习笔记1(基本概念,条件循环语句)
2015-09-03 00:43
996 查看
今天开始学习GO语言,下面是我的学习笔记
1.首先是基本的格式,package, main func和print。
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")
}
1.首先是基本的格式,package, main func和print。
package main import "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")
}
相关文章推荐
- Poj.2007 Scrambled Polygon【凸包】 2015/09/02
- DJANGO中获取登陆用名及别名
- POJ 2263 Heavy Cargo
- Junit4拓展工具JCategory与Testng的Group功能比较
- Google更换新Logo标志
- Google更换新Logo标志
- 在DJANGO的类视图中实现登陆要求和权限保护
- UVA_11292_DragonOfLoowater
- UVALive 6934 Good morning! 打表判断
- Go 语言测试(Test)、性能测试(Benchmark) 学习笔记
- [工作积累] Google Play Services
- [Golang] 从零开始写Socket Server(5):Server的解耦—通过Router+Controller实现逻辑分发
- go-反射机制
- K-Nearest Neighbor algorithm K最邻近结点算法
- Algorithms—79.Word Search
- Activity启动过程简析--Binder、Zygote、ActivityThread
- go1.5 动态密码,最简单的实现使用hmac加密
- 1195 -- Good luck and have fun
- go 入门之环境搭建-Windows
- 设置如何访问google.com