目录
开发平台
开发工具:VSCode
Go版本:1.21.7 Winsows 64位
一、Hello world
代码:
package main //一个go文件必须属于一个包
import "fmt" //引入一个包,fmt包中提供格式化、输出、输入的函数
func main(){
//输出一句话
fmt.Println("Hello world!")
}
运行结果:
二、转义字符
代码:
package main
import "fmt"
func main(){
//转义字符的使用
// \t
fmt.Println("tom\tjack")
// \n
fmt.Println("hello\nworld")
// \\
fmt.Println("C\\Users\\Administrator\\Desktop\\Go语言\\资料")
// \"
fmt.Println("tom说\"hello world!\"")
// \r 回车,从当前行的最前面开始输出,覆盖掉以前的内容
fmt.Println("天龙八部雪山飞狐\r张飞")
}
运行结果:
三、一句输出表格
要求:请使用依据输出语句,达到输入如下图形的效果
代码:
//同时返回和、差
package main
import "fmt"
func main(){
fmt.Println("姓名\t年龄\t籍贯\t住址\t\njoin\t12\t河北\t北京\t")
}
运行结果:
四、变量使用方式
1. 局部变量
package main
import "fmt"
func main(){
// golang的变量使用方式
//第一种:指定变量类型,声明后若不赋值,使用默认值
//整型的默认值是0,浮点数默认值是0,字符串默认"",布尔类型默认false
var i int
fmt.Println("i=",i)
//第二种:根据值自行判定变量类型(类型推导)
var num = 10.11
fmt.Println("num=",num)
//第三种:省略var,注意 := 左侧的变量不应该是已经声明过的,否则会导致编译错误
//下面的方式等价 var name string name = "tom"
name := "tom"
fmt.Println("name=",name)
//多变量声明
var n1, n2, n3 int
fmt.Println("n1=",n1,"n2=",n2,"n3=",n3)
//多变量声明方式2
var n4,name,n5 = 100, "tom", 888
fmt.Println("n4=",n4,"name=",name,"n5=",n5)
}
2. 全局变量
package main
import "fmt"
//定义全局变量
var n1 = 100
var n2 = 200
var name = "jack"
//一次性声明全局变量方式
var{
n3 = 300
n4 = 400
name2 = "mary"
}
func main(){
fmt.Println("n1=",n1,"n2=",n2,"name=",name)
fmt.Println("n3=",n3,"n4=",n4,"name2=",name2)
}
3. 变量使用注意事项
package main
import "fmt"
func main(){
//该区域的数据值可以在同一类型范围内不断变化
var i int = 10
i = 30
i = 50
fmt.Println("i=",i)
}
五、基本数据转字符串
1. fmt.Sprintf方法
package main
import "fmt"
func main(){
var num1 int = 99
var num2 float64 = 23.456
var b bool = true
var myChar = byte = 'h'
var str string //空的string
str = fmt.Sprintf("%d",num1)
fmt.Printf("str type %T str=%q\n",str,str)
str = fmt.Sprintf("%f",num2)
fmt.Printf("str type %T str=%q\n",str,str)
str = fmt.Sprintf("%t",b)
fmt.Printf("str type %T str=%q\n",str,str)
str = fmt.Sprintf("%c",myChar)
fmt.Printf("str type %T str=%q\n",str,str)
}
2. 使用strconv包中的函数
package main
import (
"fmt"
"strconv"
)
func main(){
var num1 int = 99
var num2 float64 = 23.456
var b bool = true
var str string //空的string
str = strconv.FormatInt(int64(num1),10)
fmt.Printf("str type %T str=%q\n",str,str)
//说明:'f' 格式 10:表示小数位保留10位 64:表示这个小数是float64
str = strconv.FormatFloat(num2,'f',10,64)
fmt.Printf("str type %T str=%q\n",str,str)
str = strconv.FormatBool(b)
fmt.Printf("str type %T str=%q\n",str,str)
}
3. 使用Itoa函数
package main
import (
"fmt"
"strconv"
)
func main(){
var num1 int = 4567
var num2 int64 = 89
var str string //空的string
str = strconv.Itoa(num1)
fmt.Printf("str type %T str=%q\n",str,str)
//Itoa只能将int类型转成string,int64类型需要先转成int
str = strconv.Itoa(int(num2))
fmt.Printf("str type %T str=%q\n",str,str)
}