Go 入门 - 包,函数和变量

Posted computing-n-design

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 入门 - 包,函数和变量相关的知识,希望对你有一定的参考价值。

主要内容来自中文版的同名教程Go语言之旅
其目的为总结要点

包,函数和变量

import 语法,多个用括号换行扩起,包之间不需要间隔符,用引号引起

import (
    "fmt"
    "math/rand"
)
// 官方认为分组导入比多个导入更好
// 用`.`引用包内对象,仅有首字母大写的那些对象是可导出的

函数

函数声明

func add(x int, y int) int { //类型在变量名之后
    return x + y
}

func add(x, y int, s string) int { // 其实输入变量就像是没有var的变量声明一样
    fmt.Println(s) 
    return x + y
}

func swap(x, y string) (string, string) { // 函数的返回值只用声明类型,也可以返回多个值,但是要记住用括号括起来
    return y, x
}

func split(sum int) (x, y int) { // 返回值也可以提前声明好,这样就可以直接用了,官方建议这种用法还是用在短函数里面
    x = sum * 4 / 9
    y = sum - x
    return
}

变量

var c, python, java bool // var 可以用在包或者函数级别的声明中
var i, j int = 1, 2 // 变量可以初始化
var c, python, java = true, false, "no!" // 初始化值存在时,可以省略类型
c, python, java := true, false, "no!" // 和上一个等效
var (
    c, python bool
    java string
) // 这种操作也是存在的

我们说var =:= 是等价的。但是函数外(包之外)的每一个语句都必须以关键字开头,因此:=这种结构不能用在函数之外。

bool

string

int  int8  int16  int32  int64
uint uint8 uint16 uint32 uint64 uintptr

byte // uint8 的别名

rune // int32 的别名
     // 表示一个 Unicode 码点

float32 float64

complex64 complex128 // go 支持复数运算

go 的变量需要显示类型转换

var i int = 42
var f float64 = float64(i)
var u uint = uint(f)
// 如果在函数内
i := 42
f := float64(i)
u := uint(f)

常量声明

const World = "世界"

不能用:=,数值常量是高精度的值,有意思的是,他可以被解释成intfloat


以上是关于Go 入门 - 包,函数和变量的主要内容,如果未能解决你的问题,请参考以下文章

GO快速入门四

Golang 入门总结:Go Module, for range, 切片, map, struct 等使用和实现

Golang 入门总结:Go Module, for range, 切片, map, struct 等使用和实现

Go 语言入门三部曲:能看懂 Go 语言

大数据开发-Go 基础入门-包,函数,通道

go 入门教程变量