学习笔记 - Go - 语法
Posted 欧阳青星
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记 - Go - 语法相关的知识,希望对你有一定的参考价值。
基本组成部分:包声明、引入包、函数、变量、语句 & 表达式、注释。
关键字 / 保留字:
break
|
default
|
func
|
interface
|
select
|
case
|
defer
|
go
|
map
|
struct
|
chan
|
else
|
goto
|
package
|
switch
|
const
|
fallthrough
|
if
|
range
|
type
|
continue
|
for
|
import
|
return
|
var
|
预定义标识符:
append
|
bool
|
byte
|
cap
|
close
|
nil
|
complex64
|
int8
|
uint16
|
copy
|
false
|
float32
|
iota
|
imag
|
int
|
complex128
|
int16
|
uint32
|
int32
|
int64
|
float64
|
len
|
make
|
new
|
complex
|
panic
|
uint64
|
print
|
println
|
recover
|
real
|
string
|
true
|
uint
|
uint8
|
uintptr
|
数据类型:
布尔
|
默认为false
|
数字
|
默认为0
|
字符串
|
默认为“”
|
派生
|
指针类型(Pointer)、数组类型、结构化类型(struct)、Channel 类型、函数类型、切片类型、接口类型(interface)、Map 类型。
|
值传递
|
调用函数时将实际参数复制一份传递到函数中,
函数中修改参数,不会影响到实际参数。
|
Go、Java
|
引用传递
|
调用函数时将实际参数的地址传递到函数中,
函数中修改参数,将影响到实际参数。
|
C
|
语法:
var a int = 1 // 变量定义
a := 1 // 函数中
var( // 全局变量
a int
b bool
)
j = i // 值拷贝
const // 常量
iota // 用于枚举的可变常量
& // 返回变量的存储地址
* // 指针变量
func max ( num1, num2 int ) int { } // 函数定义
func swap ( x, y string ) ( string, string ) { } // 函数定义
var balance [10] float32 // 数组
并发:通过 go 关键字来开启 goroutine 即可。 goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。同一个程序中的所有 goroutine 共享同一个地址空间。
通道(channel)是用来传递数据的一个数据结构。 通道可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯。操作符 <- 用于指定通道的方向,发送或接收。如果未指定方向,则为双向通道。
ch := make(chan int) // 创建通道
ch <- v // 把 v 发送到通道
ch v := <-ch // 从 ch 接收数据 并把值赋给 v
close() // 关闭通道
指针、结构体,类似C。切片(Slice)类似于 Java 的 List。范围(Range)用作遍历 for 循环。
以上是关于学习笔记 - Go - 语法的主要内容,如果未能解决你的问题,请参考以下文章