golang学习笔记之-Go语言基本语法
肯定不少猿问,为啥要学习Go语言,答案很简单,市场上Go语言工程师需求量远大于供应量,一句话,学会Go语言能找到好工作~ O(∩_∩)O哈哈~ 其实只要自身本来强,都可以找到心仪的工作的
废话不多说,开始我的表演~
如果各位童鞋想要获得下面的源码,请搜索gzh:隔壁王小猿,关注后回复“Go语言基本语法”即可获得
变量的定义
使用var关键字
- var a,b,c bool
- var s1,s2 string = “hello”,”world”
- 可以放在函数内,或者直接放在包内
- 使用var()集中定义变量,函数内和包内都可以用
让编译器自动决定类型
- var a,b,i,s1,s2 = true,false,3, “hello”,”world”
使用:=定义变量
- a,b,i,s1,s2 := true,false,3, “hello”,”world”
- 只能在函数内使用,包内不能使用
内建变量类型
- bool string
- (u)int (u)int8 (u)int16 (u)int32 (u)int64 intptr
- u代表无符号
- 8、16、32、64代表长度
- 无长度的整形,根据操作系统的位数
- Intptr是整数指针
- byte rune
- byte是2^3 = 8位
- rune长度是 32,类似char类型
- float32 float64 complex64 complex128
- float浮点型,32/64代表位数
- complex复数,64位复数(float32实部,float32虚部),128位类型
常量的定义
- const filename = “abc.txt”
- const数值可以作为各种类型使用,变量不可以
- const a,b = 3,4
- var c int = int(math.Sqrt(a*a+b*b))
枚举类型
- 使用常量定义枚举类型
- 普通枚举类型
- 自增值枚举类型 iota
- 变量常量总结
- 变量类型写在变量名之后
- 编译器可推测变量的类型
- 没有char,只有rune
- 原生支持复数类型
先来看一下这部分的源码说明:
package basic
import (
"bytes"
"fmt"
"math"
"math/cmplx"
)
//包变量- 包里面是可用的,并不是全局变量
var (
a_pkg = 123
b_pkg = true
c_pkg = "kkk"
)
//包内不能用 := 声明变量
//abc, bcd := 123, false
func variableZeroValue() {
//函数局部变量
var a int
var s string
fmt.Printf("%d %q", a, s)
fmt.Println()
}
func variableInitialValue() {
var a, b int = 1, 2
var s string = "abd"
fmt.Println(a, b, s)
}
func euler() {
fmt.Printf("%.3f\n",
cmplx.Exp(1i*math.Pi)+1)
fmt.Println(cmplx.Exp(1i*math.Pi) + 1)
}
func triangle() {
var a, b int = 30, 40
var c int
c = int(math.Sqrt(float64(a*a + b*b)))
fmt.Println(c)
////var a, b = 30, 40
//var a, b float64 = 30, 40
////var c int
//c = int(math.Sqrt(a*a + b*b))
////fmt.Println(c)
}
func variableTypeDeduction() {
var a, b, c, s = 3, 4, false, "def"
fmt.Println(a, b, c, s)
}
func variableShortor() {
abc, bcd := 123, false
fmt.Println(abc, bcd)
ss := "abs"
fmt.Println(ss)
ss = "abcd"
fmt.Println(ss)
var (
s_a = 2
s_d = 3
)
fmt.Println(s_a, s_d)
}
const fileName = "abc.txt"
const (
file1 = "file1"
file2 = "file2"
)
func consts() {
const a, b = 3, 4
var c int
c = int(math.Sqrt(a*a + b*b))
fmt.Println(c)
//fmt.Println(fileName, file1, file2)
}
func hello(abc ...interface{}) {
//fmt.Println(abc)
for argNum, arg := range abc {
if argNum > {
fmt.Println(argNum, arg)
}
}
}
func enums() {
const (
cpp = iota
java
python
c
golang
javascript = 100
_
csharp = iota
)
fmt.Println(cpp, java, python, c, golang, javascript, csharp)
const (
b = 1 << (10 * iota)
kb
mb
gb
tb
pb
)
fmt.Println(b, kb, mb, gb, tb, pb)
}
func main() {
//fmt.Println("Hello world!")
//variableZeroValue()
//variableInitialValue()
//variableTypeDeduction()
//variableShortor()
//
//fmt.Println(a_pkg, b_pkg, c_pkg)
//euler()
//triangle()
//var str string
//str = "anc"
//fmt.Println(str)
//consts()
//hello(fileName, file1, file2, 123)
enums()
var bufabc bytes.Buffer
fmt.Println(bufabc)
}
相关文章