Golang快速入门(Day4)

在这边要介绍一下go的基本用法
而这些用法在A Tour of Go也都有介绍

在下面的程序码如果有想测试的,也都可以贴到Go Playground来进行测试喔

但就让我在这边也再次描述一遍吧

程序进入点

在go的程序中,当你执行一个go的档案,他会第一个跑的程序就是main
范例如下

package main

import "fmt"

func main() {
    fmt.Println("Hello Main!")
}

func first() {
    fmt.Println("Hello First")
}

https://play.golang.org/p/PwgrD2jABVf
他会印出 Hello Main

Import

当你使用程序时,会需要依赖第三方的套件,就会需要使用import来让程序知道你希望call的function要从哪里来

而这些套件有什麽function可以让你使用,可以到
https://pkg.go.dev/std
来查询你想要的功能
在这边以fmt为举例
https://pkg.go.dev/fmt#pkg-index

这边就有列出他可以使用的function
而我们刚刚在上述程序中使用的Println就是其中一个function

变数宣告

在go里面,如果要宣告变数,有几种方法

var x string
x = "Hello World!"
var y string = "Hello World!"
z := "Hello World!"

上述这三种宣告方法出来的内容皆会是一样的
:= 是go的一个特别宣告的方式,就是可以自动将左边的内容变成右边的型态的变数,在这个方式下有几个特别要注意的点

  • := 可以使用多的变数(这个可以配合下方的function混合着看)
package main

import "fmt"

func swap(x string, y string) (string, string) {
	return y, x
}

func main() {
	a, b := swap("hello", "world")
	fmt.Println(a, b)
}
  • := 的左边至少要有一个新变数
package main

import "fmt"

func swap(x string, y string) (string, string) {
	return y, x
}

func main() {
	a, b := swap("hello", "world")
	fmt.Println(a, b)
    b, c := swap("foo", "bar")
    fmt.Println(b, c)
    b, c := swap("golang", "javascript") // Error!!
}

在golang里面,他会预设检查你是否有使用到所有的变数,如果没使用到,他会跳出警告跟你说你没用到这个变数,并不让你编译程序,但如果还是想要保留这个变数,就可以使用"_"来告诉编译器说你有用到这个变数
失败版

test := "Hello World!" // test declared but not used

成功版

test := "Hello World!" 
_ = test

逻辑判断式(if/else if)

在golang里面的if写法跟其他的语言比较不一样,不需要将条件做括号

a := 1
b := 2
if a > b {
    fmt.Println("a is greater than b")
} else {
    fmt.Println("a is smaller than b")
}

另外,在golang里的if还有个特别的用法,就是可以在if前再放一段code,他的作用域就仅在if内,出去就取不到你里面的内容了

if name := "john"; name != "" {
    fmt.Println("name:", name) // name: john
}
fmt.Println("name:", name) // !!ERROR

<<:  环境配置(node/golang)(Day3)

>>:  自动化测试,让你上班拥有一杯咖啡的时间 | Day 3 - 开始写第一个测试

1.4 Design System - 做的优先顺序、注意事项

职场好同学 CH CH 是之前一起准备升学的同学,但比我早好几年进入职场,本身也是 UX/UI 设...

追求JS小姊姊系列 Day19 -- 工具力,原来如此:原型与原型链。

前情提要: 建构式模式加上new是很擅长创造的能力。 我:这能力也太强了吧,所以new是只有你才会吗...

【左京淳的JAVA WEB学习笔记】第十一章 显示列表、图片、商品细节

显示列表 访问案例网站时默认调用index.jsp,在此页面设定转向MainSvl。 http://...

[Day03] CH02:告诉我你是谁——变数的宣告

在正式开始写程序前,还有几点要告诉大家。 所有的 Java 变数在可以使用前,都必须宣告他的名字(n...

Day 27 Quantum Protocols and Quantum Algorithms

Quantum Key Distribution Polarisation can be one o...