您的位置:首页 > 编程语言 > Go语言

Go语言学习笔记一、基础知识

2016-05-27 16:45 741 查看
package main

import (
"errors"
"fmt"
)

func main() {

//变量的申明方式:
//1.var vname type
var a string
a = "hello world !"
fmt.Println(a)
//2.多个变量三种:var vname1 , vname2 , vname3 type = v1 , v2 , v3,也可采用分组变量

var x, y, z int = 1, 2, 3
fmt.Println(x + y + z)

//vname1 , vname2 , vname3 type := v1 , v2 , v3
i, j, k := 'a', 'b', 'c'
fmt.Println(string(i) + string(j) + string(k))

//分组变量
// var (
// 	ii     int
// 	pii    float32
// 	prefix string
// )

//3.丢弃值: _ , b : = -1 , 12
_, b := -1, 12
fmt.Println(b)

//4. 常量的申明 const Pi = 3.1415,常量是不需要使用“:”推断类型的,但你可以显示的申明常亮类型:const Pi float32 = 3.1415
const Pi = 3.1415
fmt.Println(Pi)

//数值类型
//rune是int32的别称,byte 是uint8的别称
var aa rune = 32
var bb int32 = 32
if aa == bb {
fmt.Println("rune是int32的别名")
}

var xx byte = 2
var yy uint8 = 2
if xx == yy {
fmt.Println("byte是uint8的别名")
}

//Go中字符串是不可变的,s[0] = 'c' //编译报错,字符穿不能修,但可进行切片操作
var s string = "hello"
fmt.Println(s)

s = "c" + s[1:]
fmt.Println(s)

//字符串的换行使用'`'符号连接
str := `Hello
World`
fmt.Println(str)

//Go中内置了error来接受错误类型,package中errors来跑出错误
var err error = errors.New("make a  error")
if err != nil {
fmt.Println(err)
}

//iota枚举关键字用法,常量复制iota那么,后边的常量即使不申明复制iota,也默认等于iota,且每次+1.但再次遇到const时,iota重置为0

// const(

// 	d = iota
// 	e = iota
// 	f = iota
// 	g = iota
// 	h
// )
// fmt.Println(d)
// fmt.Println(e)
// fmt.Println(f)
// fmt.Println(g)
// fmt.Println(h)

//数组的初始化
var arr [3]int
arr[0] = 10

arrs := [3]int{1, 2, 3}
fmt.Println(arrs[0])
fmt.Println(arrs[1])
fmt.Println(arrs[2])

//自动推断长度的数组

arrss := [...]int{4, 5, 6}
fmt.Println(arrss[0])
fmt.Println(arrss[1])
fmt.Println(arrss[2])

//slice是数组的切片,slice和数组的区别是,slice的申明没有长度也不适用...来自动推断长度
slice := []byte{'a', 'b', 'c'}
fmt.Println(slice)
fmt.Println(slice[0])
fmt.Println(slice[1])
fmt.Println(slice[2])

//slice可从数组中得到
slice2 := arrs[1:]
fmt.Println(slice2[0])
fmt.Println(slice2[1])

//[:]完整获取数组的值
slice3 := arrss[:]
for i := 0; i < len(slice3); i++ {
fmt.Println(slice3[i])
}

fmt.Println(cap(slice3))

//从arrary中获取数组到slice中
slice3 = append(slice3, arrs[1:3]...)
fmt.Println("***")
for i := 0; i < len(slice3); i++ {
fmt.Println(slice3[i])
}
fmt.Println("***")

//map的用法map[keyType]valueType
user := make(map[int]string)
user[1001] = "yyq"
user[1002] = "yyq1"
user[1003] = "yyq2"
fmt.Println(user[1001])

//map的另一种初始化方式
user2 := map[int]string{1001: "yyq", 1002: "yyq2", 1003: "yyq3"}
fmt.Println(user2[1003])

delete(user, 1001)
fmt.Println(user[1001])

//make用于分配map,slice,channel的内存,并初始化为“非零”值,new用于各类内存的分配,并初始化成“零”值

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Golang1.6.1