0
false
"”
golang 中不同类型之间的变量赋值需要显式的转换
//语法格式 T(v) 将 v 转换为 类型 T
var i int = 32
var f float64 = float64(i)
var u uint = uint(64)
_
变量
_
用来抛弃忽略某个值,golang 中不允许存在没有使用的变量
常量是指变量一旦定义,在编译阶段它的值就是确定了的,在运行阶段是不可以被改变的,golang 中 number|boolean|string 类型可以定义为常量 定义语法 const constantName = value cosnt constantName constantType = value
const PI = 3.14
const Pi float32 = 3.14156
golang 中的 基本变量类型主要为 number,bool,string等
关键词 bool
用于定义 boolean类型变量,boolean 类型变量的取值只有 true
和 false
, 零值(默认值)为 false
golang 不允许把 boolean 类型转变为数字类型
golang 不允许类型不同的变量进行运算,例如 int8类型的变量和 int32类型的变量不能进行加法操作
注意没有 float 这个类型
goalng 使用 UTF-8作为编码结合,使用 " 或者 ` 包裹起来的字符就是一个 string ` 定义多行字符串
var s1 = "hello"
var s2 = `hello
word`
string 对象不允许改变值(但是可以给重新赋值),下面的语法错误
var s = "hello"
s[0] = 'c'
如果要改变一个变量的值,需要使用旧的变量创建
s := "heloo"
c := byte(s) //string 转换为[]byte 类型
c[0] = 'c'
s2 := string(c) //把 c []byte 转为 string
fmt.Printf("%s\s\n", s2)
+
可以用来拼接两个字符串
s := "hello, "
m := "world"
a := s + m
fmt.Printf("%s\n", a)
//输出 "cello, "
s = "c" + s[1:] //返回 "c" + s从索引1到结束的字符串拼接
golang没有 try-catch 语句块处理异常,内置了 error 类型用于处理错误
err := errors.New("some error messaage")
if err != nil {
//TODO something
}
const(
//x == 0
x = iota
//y == 1
y = iota
//z == 2
z = iota
//如果常量名称后面没有任何表达式
//则 w 等价于 w = iota, w == 3
w
)
const v = iota //v == 0
//PS 注意在同一行时的 iota 特殊情况
const(
//如果 iota 在同一行,则 e == f == g == 0
e, f, g = iota, iota, iota
)
package test
//Foo 在包 test 之外可以通过 test.Foo 访问
var Foo
//bar 在包 test 之外通过 test.bar 访问是错误的,因为它的首字母是小写,包外不可见
var bar
//函数在test 包外可以使用 test.Test1()访问
func Test1(){
}
//函数在 test 包外不可以通过 test.test2()访问,只可以在包内使用
func test2(){
}
//包外使用 test.I访问
Const I = 1
// j 不可以在包外通过 test.j 访问
cont j = 10