Go学习笔记:基础一
lonewolf · · 4843 次点击 · · 开始浏览撰于 2015年02月14日
最近在学习Go语言,按照学习指南学的,现把学习过程记录一下。
这一章学习包、变量和函数。
包
包定义都是在第一行,如:
package main
导入别的包则用import,如:
import "fmt"
import "math"
也可以这样:
import (
"fmt"
"math/rand"
)
如果你引入了一个包,但没有使用它,是没法编译通过的,出错信息如下: imported and not used: "math"
因为Go语言是静态编译,引入没有使用的包会增大最终执行文件的体积,所以Go强制这样做。
Go语言提供了很多的标准包,具体可以看看Go库文档(中文)。
Go语言编译运行时(
go run xxx.go),该文件里必须有main包和main函数才能运行。Go语言语句结尾都没有分号
;。
函数
函数以func关键字定义,如下:
func add(x int, y int) int {
return x + y
}
func swap(x, y string) (string, string) {
return y, x
}
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main() {
fmt.Println(add(42, 13))
a, b := swap("hello", "world")
fmt.Println(a, b)
fmt.Println(split(17))
}
- 参数的类型声明是放在变量名后面的。
- 如果参数类型一样,除了最后一个要声明类型,之前的都可以省略。
- 返回值的类型放在
)和{之间,如果没有返回值,则为空。 - 可以返回多个值,这时候返回的类型要用
(`)`包含起来。 - 返回值可以被命名,
return直接返回。 - 函数
main为主函数,一个项目里只有一个。
变量
变量以var关键字定义,类型声明放在后面,可以赋初始值。
var a int
var b bool
var c, d float64 = 2.5, 5.0
也可以这样定义:
func main() {
k := 3
c, d, e := false, 1, "hello"
}
这个时候变量的类型由右边给出的值来推断,但这种形式:=只能在函数内部使用。
常量
常量以const关键字定义,如:
const Pi = 3.14
常量不能以
:=定义。
常量的类型是由右边的值来推断。
基本类型
Go语言的基本类型有:
bool // 初始值 false
string // 初始值为""(空字符串)
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 的别名
rune // int32 的别名
// 代表一个Unicode码
float32 float64
complex64 complex128
数值类型的初始值是
0。
类型转换,Go中没有隐型的类型转换,所有的转换都需要显式的转换,如:
var i int= 42
var f float64 = float64(i)
或者:
i := 10
f := float64(i)
注释
Go可以这样注释:
/*
这是注释
*/
也可以这样:
// 这是注释
好了,这一章就这样了,先学个基础。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
撰于 2015年02月14日
最近在学习Go语言,按照学习指南学的,现把学习过程记录一下。
这一章学习包、变量和函数。
包
包定义都是在第一行,如:
package main
导入别的包则用import,如:
import "fmt"
import "math"
也可以这样:
import (
"fmt"
"math/rand"
)
如果你引入了一个包,但没有使用它,是没法编译通过的,出错信息如下: imported and not used: "math"
因为Go语言是静态编译,引入没有使用的包会增大最终执行文件的体积,所以Go强制这样做。
Go语言提供了很多的标准包,具体可以看看Go库文档(中文)。
Go语言编译运行时(
go run xxx.go),该文件里必须有main包和main函数才能运行。Go语言语句结尾都没有分号
;。
函数
函数以func关键字定义,如下:
func add(x int, y int) int {
return x + y
}
func swap(x, y string) (string, string) {
return y, x
}
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main() {
fmt.Println(add(42, 13))
a, b := swap("hello", "world")
fmt.Println(a, b)
fmt.Println(split(17))
}
- 参数的类型声明是放在变量名后面的。
- 如果参数类型一样,除了最后一个要声明类型,之前的都可以省略。
- 返回值的类型放在
)和{之间,如果没有返回值,则为空。 - 可以返回多个值,这时候返回的类型要用
(`)`包含起来。 - 返回值可以被命名,
return直接返回。 - 函数
main为主函数,一个项目里只有一个。
变量
变量以var关键字定义,类型声明放在后面,可以赋初始值。
var a int
var b bool
var c, d float64 = 2.5, 5.0
也可以这样定义:
func main() {
k := 3
c, d, e := false, 1, "hello"
}
这个时候变量的类型由右边给出的值来推断,但这种形式:=只能在函数内部使用。
常量
常量以const关键字定义,如:
const Pi = 3.14
常量不能以
:=定义。
常量的类型是由右边的值来推断。
基本类型
Go语言的基本类型有:
bool // 初始值 false
string // 初始值为""(空字符串)
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 的别名
rune // int32 的别名
// 代表一个Unicode码
float32 float64
complex64 complex128
数值类型的初始值是
0。
类型转换,Go中没有隐型的类型转换,所有的转换都需要显式的转换,如:
var i int= 42
var f float64 = float64(i)
或者:
i := 10
f := float64(i)
注释
Go可以这样注释:
/*
这是注释
*/
也可以这样:
// 这是注释
好了,这一章就这样了,先学个基础。