GO语言的初次学习

 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)
    
}
原文地址:https://www.cnblogs.com/wen-kang/p/9682544.html