Go开发注意事项
1、Go源文件以“go”为扩展名
2、应用程序执行入口是main()方法
3、区分大小写
4、每个语句不需要加分号
5、不能多条语句写在同一行
- 基础语法-变量
- 字符串
g :=a+"fog" - 声明变量1:自动推导变量类型
var a="initial"或者var b,c int =1,2 - 声明变量2:
f:=float32(e) - 常量:根据上下文自动确定类型,const x = xxx eg.
const s string ="constant"
- 基础语法-if else 与c++类似,区别if后面无括号,大括号后换一行
if 7%2 ==0{
fmt.Println("7 is even")
}else{
fmt.println("7 is odd")
}
3.基础语法-循环 只有for循环
pakage main
import "fmt"
func main(){
i:=1
for{
fmt.Println("loop")
break
}
for j:=7;j<9;j++{
fmt.Println(j)
}
for n:=0;n<5;n++{
if n%2 ==0{
continue
}
fmt.Println(n)
}
for i<=3{
fmt.Println(i)
i=i+1
}
}
4.基础语法-switch
switch变量名后面不需要括号,与c++的最大区别是不需要自己添加break,默认有break。当达到条件自动跳出switch,执行下一行代码。
a:=2
switch a{
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
default:
fmt.Println("other")
}
switch功能更加强大,可以使用任意变量(字符串,结构体),甚至可以取代if else(switch后面不加变量,case后面加条件)
a:=1
switch{
case a>2:
fmt.Println("a大于2")
default:
fmt.Println("a小于2")
}
5.基础语法-数组 与c++相似
var a [5]int//建立数组
a[4]=100//向数组存数据
fmt.Pritln(a[4],len(a))//读取数组数据
6.基础语法-切片(重点)
- make创建,append堆栈(必须赋值回去原数组)
- copy复制
- 有与python相同的切片操作
7.基础语法-map
ok验证map里面是否有key存在
map完全无序,偏随机输出
7.基础语法-range
对于数组,map用range快速遍历,使代码更简洁
返回两个值,第一个值索引(不需要索引用下划线去复位),第二个值是对应位置的值
8.基础语法-函数
函数返回多个值
Go 函数可以返回多个值,例如:
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Google", "Runoob")
fmt.Println(a, b)
}
9.基础语法-指针
主要用途:对存入的参数进行修改
import "fmt"
func main() {
var a int= 20 /* 声明实际变量 */
var ip *int /* 声明指针变量 */
ip = &a /* 指针变量的存储地址 */
fmt.Printf("a 变量的地址是: %x\n", &a )
/* 指针变量的存储地址 */
fmt.Printf("ip 变量储存的指针地址: %x\n", ip )
/* 使用指针访问值 */
fmt.Printf("*ip 变量的值: %d\n", *ip )
}
10.基础语法-结构体
import "fmt"
type Books struct {
title string
author string
subject string
book_id int
}
func main() {
// 创建一个新的结构体
fmt.Println(Books{"Go 语言", "www.runoob.com", "Go 语言教程", 6495407})
// 也可以使用 key => value 格式
fmt.Println(Books{title: "Go 语言", author: "www.runoob.com", subject: "Go 语言教程", book_id: 6495407})
// 忽略的字段为 0 或 空
fmt.Println(Books{title: "Go 语言", author: "www.runoob.com"})
}
未完待续