这是一篇写于2021年3月的总结稿,当时还立了Flag: 我打算从PHP转Go啦,坚持每天打卡,坚持每天学习新的知识点,为月薪30k+做准备。
谁不是从易到难,一步一步学的呢?
使用 go build
像执行脚本文件一样执行 go 代码
go install 分为两步:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
//导入语句 双引号包裹
import "fmt"
//函数外只能放置标识符(变量,常量,函数,类型)的声明;不能放置语句
//程序的入口函数
func main() {
fmt.Println("hello world")
}
go的变量要先声明再使用
var sl string 声明一个保存字符串类型的变量s1
var age int
var isOk bool
package main
import "fmt"
//go语言中推荐使用驼峰命名
// var studentName string
//声明变量
// var name string
// var age int
// var isOk bool
//批量声明 声明全局变量建议使用批量声明,方便追加
var (
name string // ""
age int // 0
isOk bool // false
)
//匿名变量使用_指定,匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。
func main() {
name = "理想"
age = 18
isOk = true
// var test = string
//go语言中非全局变量声明了就必须使用,不使用就无法编译(全局变量声明了不使用也可以编译通过)
fmt.Print(isOk) //在终端中输入要打印的内容
fmt.Println()
fmt.Printf("name:%s\n", name) // %s是一个占位符 使用name这个变量的值替换%s占位符
fmt.Println(age) //打印完指定的内容后,会加一个换行符
// test = "111"
// fmt.Println(test)
//声明变量的同时赋值
var s1 string = "wzy"
fmt.Println(s1)
//类型推倒 根据值判断变量是什么类型
var s2 = "lizijie"
fmt.Println(s2)
//简短变量声明,只能再函数里面用
s3 := "luanran"
fmt.Println(s3)
// 同一个作用域,不能重复声明同名变量
// 简单理解作用域,同一个{}就是一个作用域
// s3 := "huihui"
// 匿名变量 是一个特殊的变量:_
}
因为有小伙伴在这里犯错,所以再再多说一句, := 是不能在函数外使用的。
程序寻址长度,最大支持多少内存,一个老旧的32位Windows操作系统最多只能读取3.8G的内存,安装16G的内存条也只能读取3.8G的内存
s1 := "123"
s2 := "我们"
s3 := "mystring"
s1 := '1'
s2 := '我'
s3 := 's'
// 字节:1个字节=8Bit(8个二进制位)
// 一个字符'A' = 1个字节
// 一个utf8编码的汉字一般占3个字节 (比如‘沙’)