get download and install packages and dependencies
install = compile and install packages and dependencies
run compile and run Go program
build compile packages and dependencies
不用加分号
if 语句没有圆括号
switch语句没有break
Go语言中没有while
有指针
反过来声明变量类型和函数返回值
Hello World
文件名 hello.go
1
2
3
4
5
6
7
|
package main //声明 本文件的package名
import "fmt"
func main() {
fmt.Println( "hello world" )
}
|
运行
你可以有两种运行方式,
解释执行(实际是编译成a.out再执行)
1
2
|
$go run hello.go
hello world
|
编译执行
1
2
3
4
5
6
7
|
$go build hello.go
$ ls
hello hello.go
$. /hello
hello world
|
自己的package
你可以使用GOPATH环境变量,或是使用相对路径来import你自己的package。
Go的规约是这样的:
1)在import中,你可以使用相对路径,如 ./或 ../ 来引用你的package
2)如果没有使用相对路径,那么,go会去找$GOPATH/src/目录。
使用相对路径
1 |
import "./haoel" //import当前目录里haoel子目录里的 所有的go文件
|
使用GOPATH路径
1 |
import "haoel" //import 环境变量 $GOPATH/src/haoel 子目录里的所有的go文件
|
fmt输出格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package main
import "fmt"
import "math"
func main() {
fmt.Println( "hello world" )
fmt.Printf( "%t\n" , 1 == 2 )
fmt.Printf( "二进制:%b\n" , 255 )
fmt.Printf( "八进制:%o\n" , 255 )
fmt.Printf( "十六进制:%X\n" , 255 )
fmt.Printf( "十进制:%d\n" , 255 )
fmt.Printf( "浮点数:%f\n" , math.Pi)
fmt.Printf( "字符串:%s\n" , "hello world" )
}
|
也可以使用如\n\t\r这样的和C语言一样的控制字符
变量和常量
变量的声明很像 javascript,使用 var关键字。注意:go是静态类型的语言,下面是代码:
1
2
3
4
5
6
7
8
|
//声明初始化一个变量
var x int = 100
var str string = "hello world"
//声明初始化多个变量
var i, j, k int = 1, 2, 3
//不用指明类型,通过初始化值来推导
var b = true //bool型
|
还有一种定义变量的方式(这让我想到了Pascal语言,但完全不一样)
1 |
x := 100 //等价于 var x int = 100;
|
常量很简单,使用const关键字:
1
2
|
const s string = "hello world"
const pi float32 = 3.1415926
|
数组
直接看代码(注意其中的for语句,和C很相似吧,就是没有括号了)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
func main() {
var a [ 5 ] int 注意这个int紧挨着,没有空格
fmt.Println( "array a:" , a)
a[ 1 ] = 10
a[ 3 ] = 30
fmt.Println( "assign:" , a)
fmt.Println( "len:" , len(a))
b := [ 5 ] int { 1 , 2 , 3 ,
|
|
请发表评论