1 package main
2 import (
3 "fmt"
4 "time"
5 )
6
7 func main() {
8 fmt.Println("hello world!")
9 dur :=time.Duration(10)*time.Second
10 time.Sleep(dur)
11 }
需要注意:go语言语法严谨,括号里面的字符串只能使用双引号 ,
若是定义却未使用,或者引入未使用的包,则会直接报错
大括号必须是成对出现的,缺一不可。
如果希望申明并给变量赋值格式为: num : =123
想查看字符串的大小,可以使用unsafe包下的Sizeof()函数 ---->unsafe.Sizeof(num)
数据类型之间的转换:
基本类型转为string类型调用fmt.Sprintf()方法
查看数据类型fmt.Printf("%T",num)
或者调用函数strconv下的类型方法去实现 strconv.FormatInt()……
指针的使用:如果想查看变量的地址 &num ,查看指针的值 * num 先找到对应地址,再取地址存放的值
申明的指针的值必须指向一个地址,不能是地址对应的值
比如定义一个指针 var par *int=&num 此时 par指向的是num对应的地址 *par=123
a:=456
par=&a 则par的地址变为a的地址,则此时par指向a 那么 *par=456
继续,*par=789,指针对应的值发生改变,*par=789且a=789
golang里面的值类型都有对应的指针类型,表现形式为 *数据类型
值类型包括:int、float、string、bool、struct结构体、数组
引用类型包括:指针,slice切片,map,管道chan,interface等
包里面的变量或者常量如果想被其他包使用,则该变量首字母必须大写,小写则私有,只能在本包使用。
关于在本包导入外包的坑需要注意:
pycharm默认的路径是当前文件所在路径。对应配置文件大的GOPATH下的路径,比如启动执行文件main.go
因此推荐使用相对路径拼接路径来导入包 ----> " ../uc",较其他语言奇葩的是,go只需要导入要使用的people.go所在的包名即可
调用时则直接用包名调属性或者函数。uc.Superman就能调用uc包下的属性
奇葩用法:i++、i-- 不能直接复制给变量或者比较,必须单独执行完成后用i去处理,没有++i、--i这种操作
部分案例代码:
package main
import (
"fmt"
_"../uc" //引入外包 不用时前面加_ 使其忽略
)
var( //申明变量
hc float32
sc float32
)
func main() {
fmt.Printf("请输入华氏温度:")
fmt.Scanln(&hc) //键盘输入值
sc= 5.0 / 9 * (hc - 32)
fmt.Printf("华氏温度%v是%v摄氏度",hc,sc) //实值输出%v
}
实现类似于input的键盘输入数据:可以用fmt包下的两个函数 Scanln、Scanf 效果如下:
package main
import "fmt"
func main() {
var name string
var age int
var money float32
//fmt.Println("请输入姓名:")
//fmt.Scanln(&name)
//fmt.Println("请输入年龄:")
//fmt.Scanln(&age)
//fmt.Println("请输入工资:")
//fmt.Scanln(&money)
//fmt.Printf("%v有%v岁月薪%v",name,age,money)
fmt.Println("请输入姓名,年龄,工资,中间以空格隔开")
fmt.Scanf("%s %d %f",&name,&age,&money)
fmt.Printf("%v有%v岁月薪%v",name,age,money)
}