分享
  1. 首页
  2. 文章

基本语法 - day 1

aside section._1OhGeD · · 1253 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

变量的定义

/*使用var定义*/
//隐式初始值(初始化为零值)
var num1 int
var str2 string
//显式初始值
var num2 int = 12
var str2 string = "xiaohei"
//类型自动推断
var a, b, c = 3, 5, "xiaohei"
/*:=方式声明变量*/
f, g := 12, "min"

:=方式声明变量不适用于包作用域
在包作用域内的每一行必须是以funcpackageimportvarconst等关键字开始

内建变量类型

  • boolstring
  • (u)int(u)int8(u)int16(u)int32(u)int64uintptr
  • byte(8bits)、rune(32bits)
  • float32float64complex64complex128

intuint的大小随操作紫铜变化,在32位系统中是32位大小,在64位系统中是64位大小
complex64中实部和虚部大小分别为32bits,complex128中实部和虚部的大小分别为64bits

常量的定义

const a, b = 3, 4
const str string = "min"

当常量没有显示声明类型时,可以当做各种类型使用(也可以声明为特定的类型)

枚举类型

const (
 cpp = 0
 java = 1
 python = 3
)

const中可以使用iota自增赋值

const (
 cpp = iota
 java
 python
)

iota会每行自增一次,而不管是否使用
iota可以放到表达式中进行计算,然后再赋值

条件语句

golang中的条件语句包括ifswitch

if语句

if statement; condition {
// ...
}

or

if condition {
// ...
}

读文件:contents, err := ioutil.ReadFile(filename)

switch语句

//在switch后进行条件判断
switch coinflip() {
 case "heads":
 heads++
 case "tails":
 tails++
 default:
 fmt.Println("landed on edge!")
}

or

//在case中进行条件判断
x := 12
switch {
 case x > 0:
 return +1
 default:
 return 0
 case x < 0:
 return -1
}

golang中的switch中不需要break语句,默认不会执行下一个case;当需要执行下一个case时需使用fallthrough语句

循环语句

golang中的循环语句只有for一种

for init; condition; post {
//...
}

golangfor循环中的init、condition、post都可以省略,以此实现while循环和死循环

函数

func div(a, b int) (int, int) {
//...
}
func div2(a, b int) (q, r int) {
//...
}

向函数作为参数传入:

func apply(op func(int, int) int, a, b int) int {
//...
}

可变参数列表:

func sum(numbers ...int) int {
//...
}

指针

golang中的指针不可以运算

var a int = 2
var pa *int = &a
*pa = 3
//now a's value is 3

golang中函数参数的传递方式只有值传递一种


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:aside section._1OhGeD

查看原文:基本语法 - day 1

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1253 次点击
1 回复 | 直到 2025年05月15日 09:05:28
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏