Golang 笔记 day-01
注意:引用包必须使用,声明变量必须使用,必须有main包,必须要main入口函数
go推荐使用驼峰命名,使用行注释
Mac 打包 Linux window
CGO_ENABKED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABKED=0 GOOS=windows GOARCH=amd64 go build main.go
项目结构
- project
- src
- demo1(项目名)
- 包名
- demo1(项目名)
- src
变量声明
// 变量声明必须使用
var a int
var (
a int
b string
c bool
)
var name = "阿斯顿" // 类型推导
a := 1 // 简短变量声明 只能在函数哪使用
_ // 匿名变量 接收不需要的值
常量
// 不可变
const pi = 3.1415926
// 批量声明常量
const (
code = 200
a = 1
b = "测试"
)
// 后面未设置值,值和上面一样
const (
code = 200
a = iota
b
)
// 在const 关键字出现时重置,每出现一次 iota加1 可以理解为const的索引 ,同一行iota相同
const (
a,b=iota+1,iota+2
)
// a=1 ,b=2 因为 iota =0
// <<左移 1 左移1位是 10
const (
_ = iota
kb = 1 << (10 * iota) // 1024
mb = 1 << (10 * iota)
)
const (
a = 10
x = 20
b = iota
c
d
_
f
)
func main() {
fmt.Println(a)
fmt.Println(x)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
fmt.Println(f)
}
// 10 20 2,3,4,6
fmt包的使用
fmt.Print() //在终端打印
fmt.Pintf("name=%s",'大帅比') // %s字符串 %b二进制 %o八进制 %x十六进制 %T变量类型 %v值
fmt.SPintf("%s%s",name,age) // 字符串拼接
fmt.Pintln("test") //打印完指定内容后换行
二进制转十进制
abc=c * 2^0 + b2^1 + a2^2
常用包
import (
"fmt"
"math"
)
数据类型 - 01
浮点数
// 默认Go语言中的小树类型是float64
// float32不能赋值给float64
//浮点值
float32 float64
#### 复数
//复数
complex64 complex128
bool
//bool 不能将数字类型转bool 默认false
var a =false
字符串
//字符串只能用双引号包裹,单引号只能包裹单独的字符
var b = "abc"
var c = 'a'
var d = '你'
//多行字符串
var d =`
十大,阿斯顿
阿斯顿
`
strings.Split(“aasdasdasdasd”,'s') // 字符串分割
len()
strings.Contaions //字符串是否包含
//字节: 1字节=8Bit(8个二进制位)
// 1个字符‘a’=1个字节 1kb=1024个字节
//一个utf8编码汉子 一般占3个字节
流程控制 - 01
if
if age > 18 {
fmt.printf()
}else if age > 6 {
}else{
}
for
// 局部变量
for i :=0;i<10;i++{
fmt.Println(i)
}
// 全局变量
var i =4
for ;i<10;i++{
fmt.Println(i)
}
// 无限循环
for {
}
s := "hello你好"
for i,v := range s{
}
// 跳出当前循环
for i := 0; i < 10; i++ {
if i == 5 {
break
}
}
// 跳过本次循环,继续下一次循环
for i := 0; i < 10; i++ {
if i == 5 {
continue
}
}
// 跳出两次循环
for i := 0; i < 10; i++ {
for f := 0; f < 5; f++ {
if f == 3 {
i=10
break
}
}
}
// goto 跳转到下面的代码
for i := 0; i < 10; i++ {
for f := 0; f < 5; f++ {
if f == 3 {
goto myBreak
}
}
}
myBreak:
{
fmt.Println("over")
}
练习
package main
import (
"fmt"
)
func main() {
chengfabiao()
runeFn()
}
//打印99乘法表
func chengfabiao() {
for a := 1; a < 10; a++ {
for b := 1; b <= a; b++ {
c := a * b
fmt.Printf("%dx%d=%d\t", b, a, c)
}
fmt.Println()
}
}
// 打印汉字
func runeFn() {
s := "nihao测试"
s1 := []rune(s)
for _, v := range s1 {
str := fmt.Sprintf("%c", v)
if len(str) >= 3 {
fmt.Println(str)
}
}
}