GoLang学习笔记(二) GoLang基础

GoLang学习笔记(二) GoLang基础

一、包

Go程序从 main 包开始运行,程序内通过导入路径来使用其他的包。

Go中的约定是,包名与导入路径的最后一个元素一致。

"math/rand"包中的代码都是以package rand开头

package main//main包 程序运行

//包的导入
import (
	"fmt"
	"math/rand"
)

func main() {
	fmt.Println("hello go ", rand.Intn(100))
}

  1. 包的导入

    Go可以通过编写多个导入语句进行导包

    import "fmt"
    import "math
    

    也可以通过上面代码中的分组导入语句进行导包

    上述代码中通过路径"fmt""math/rand"导入了两个包。

  2. 导出

    Go中,如果一个名称的首字母是大写的,那么这个名称是已导出的,这个方法是其他包可见的,相当与Java中是由public关键字修饰。

    若一个名称是以小写字母开头,那么这个名称未导出的,是其他包不可见的。

    相当与Java中private关键字修饰。

    package main
    
    import (
    	"fmt"
    	"math"
    )
    
    func main() {
    	fmt.Println(math.pi)//此处pi为未导出的
    }
    
    

    运行结果为

    image-20210508154206694

    修改为 math.Pi 程序正常运行

    image-20210508154418173

二、变量

  1. 基本类型

    bool
    
    string
    
    int  int8  int16  int32  int64
    uint uint8 uint16 uint32 uint64 uintptr
    
    byte // uint8 的别名
    
    rune // int32 的别名
        // 表示一个 Unicode 码点
    
    float32 float64
    
    complex64 complex128 //复数 complex64为32位实数+32位虚数 complex128为64位实数+64位虚数
    
    

    注意:int, uintuintptr 在 32 位系统上通常为 32 位宽,在 64 位系统上则为 64 位宽。

  2. 变量声明

    var用于一个变量的声明 声明格式为

    var 变量名 变量类型
    

    行尾无须分号,Go代码中不需要分号结尾

    若多个变量为相同类型,通过var+变量名2+,+变量名1+ 变量类型 的形式声明

    var a,b,c int
    

    批量声明 类似与包的批量导入 使用var和括号将一组变量放在一起声明

    var (
        a int
        b string
        c []float32
        d func() bool
        e struct {
            x int
        }
    )
    

    短变量声明

    使用:= 可以代替var进行变量的声明

    package main
    
    import (
    	"fmt"
    
    )
    
    func main() {
    
    	k := 3
    	c, python, java := true, false, "no!"
    
    	fmt.Println(k, c, python, java)
    }
    
    

    运行结果为:

    image-20210508161631867

    注意:

    := 结构不能在函数外使用 应为Go语言中,函数外的每个语句都必须以关键字开始(var, func 等等)

    :=声明写法的左值变量必须是没有定义过的变量。若定义过,将会发生编译错误。

  3. 变量的初始化

    没有明确初始值的变量声明它们会被赋予:

    • 数值类型为 0
    • 布尔类型为 false
    • 字符串为 ""(空字符串)。
  4. 类型转换

    Go中不同类型之前的转换必须通过显示转换,不支持隐式转换

    var i int = 42
    var f float64 = float64(i)
    
  5. 类型推导

    当声明了一个不指定类型的变量时,Go会帮助我们进行类型推导,更具右边的值推导得出变量的类型

三、常量

​ 由const 关键字声明,定义格式语法与变量类似

​ 常量的值必须是能够在编译时就能够确定的,可以在其赋值表达式中涉及计算过程,但是所有用于计算的值必须在编译期间就能获得。所有常量的运算都可以在编译期完成,这样不仅可以减少运行时的工作,也方便其他代码的编译优化,当操作数是常量时,一些运行时的错误也可以在编译时被发现。

const (
    e  = 2.7182818
    pi = 3.1415926
)

四、函数

  1. 参数

    函数可以无参也可以是多个参数

    package main
    
    import "fmt"
    
    func add(x int, y int) int {
    	return x + y
    }
    
    func main() {
    	fmt.Println(add(42, 13))
    }
    
    

    若两个参数类型相同简写为:

    package main
    
    import "fmt"
    
    func add(x, y int) int {
    	return x + y
    }
    
    func main() {
    	fmt.Println(add(42, 13))
    }
    
  2. 返回值

    Go支持一个函数拥有任意个数的返回值 并且这些返回值可以进行命名。

    返回值被命名后,会被视作定义在函数顶部的变量

    package main
    
    import "fmt"
    
    func split(sum int) (x, y int) {
    	x = sum * 4 / 9
    	y = sum - x
    	return
    }
    
    func main() {
    	fmt.Println(split(17))
    }
    
    

    没有参数的return 语句会返回以及命名的返回值。

    package main
    
    import "fmt"
    
    func split(sum int) (x, y int) {
    	x = sum * 4 / 9
    	y = sum - x
    	return
    }
    
    func main() {
    	fmt.Println(split(17))
    }
    
    

    没有参数的return 语句会返回以及命名的返回值。

    在较长的函数中不建议使用直接返回,这样会影响代码的可读性。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值