内容简介:Go 亦称为 Golang(译注:按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言。Golang 的主要关注点是使得高可用性和可扩展性的 Web 应用的开发变得简便容易。(译注:Go 的定位是系统编程语言,只是对 Web 开发支持较好)Go 语言一些优点:
什么是Golang
Go 亦称为 Golang(译注:按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言。
Golang 的主要关注点是使得高可用性和可扩展性的 Web 应用的开发变得简便容易。(译注:Go 的定位是系统编程语言,只是对 Web 开发支持较好)
Go 语言一些优点:
- 并发是语言的一部分(并非通过标准库实现),所以编写多线程程序会是一件很容易的事。后续教程将会讨论到,并发是通过 Goroutines 和 channels 机制实现的。
- Golang 是一种编译型语言。源代码会编译为二进制机器码。而在解释型语言中没有这个过程,如 Nodejs 中的 Python。
- 语言规范十分简洁。所有规范都在一个页面展示,你甚至都可以用它来编写你自己的编译器呢。
- Go 编译器支持静态链接。所有 Go 代码都可以静态链接为一个大的二进制文件(译注:相对现在的磁盘空间,其实根本不大),并可以轻松部署到云服务器,而不必担心各种依赖性。
安装
Mac OS
官网下载 https://golang.org/dl/ 安装程序。双击开始安装,会将 Golang 安装到 /usr/local/go 目录下,同时 /usr/local/go/bin 文件夹也会被添加到 PATH 环境变量中。
(这里只介绍Mac OS下的安装,其他平台请自行查阅)
建立工作区
在 Mac 或 Linux 操作系统下,Go 工作区应该设置在 $HOME/go 。所以我们要在 $HOME 目录下创建 go 目录。
也可以通过设置 GOPATH ,用其他目录来作为工作区。我这边使用的ide是这个
image.png
设置GOPATH的方式:
image.png
所有 Go 源文件都应该放置在工作区里的 src 目录下。请在刚添加的 go 目录下面创建目录 src。
所有 Go 项目都应该依次在 src 里面设置自己的子目录。我们在 src 里面创建一个目录 hello 来放置整个 hello 项目。
创建上述目录之后,其目录结构如下:
go
src
hello
hello.go
hello.go中写入代码:
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
-
使用命令go run hello.go名运行:
image.png
- 使用 go install hello 命令
当你输入 go install hello 时,go 工具会在工作区中搜索 hello 包。接下来它会在工作区的 bin 目录下,创建一个名为 hello(Windows 下名为 hello.exe)的二进制文件。运行 go install hello 后,其目录结构如下所示:
go
bin
hello
src
hello
hello.go
代码中第一行:
package main ,每一个 Go 文件都应该在开头进行 package name 的声明(译注:只有可执行程序的包名应当为 main)。包(Packages)用于代码的封装与重用,这里的包名称是main。
变量
变量:变量指定了某存储单元(Memory Location)的名称,该存储单元会存储特定类型的值。在 Go 中,有多种语法用于声明变量。
package main
import (
"fmt"
"math"
)
func main() {
var age int // 变量声明
fmt.Println("my age is", age)
age = 10 //变量赋值
fmt.Println("my age is", age)
age = 30 //变量赋值
fmt.Println("my age is", age)
var name string = "allen" // 声明变量并初始化
fmt.Println("my name is", name)
var num = 29 // 可以推断类型
fmt.Println("my num is", num)
var width, height int = 100, 50 // 声明多个变量
fmt.Println("width is", width, "height is", height)
var a, b int //省略初始化,默认值为0
fmt.Println("width is", a, "height is", b)
//一个语句中声名不同类型变量
var (
c = "jie"
d = 24
e int
)
fmt.Println("my c is", c, ", d is", d, "and e is", e)
m, n := "allen", 29 // 简短声明
fmt.Println("m name is", m, "n is", n)
//变量也可以在运行时进行赋值
q, p := 145.8, 543.8
e1 := math.Min(q, p)
fmt.Println("minimum value is ", e1)
}
- 声明单个变量 :var name type
- 声明变量并初始化 : var name type = initialvalue
- 类型推断(Type Inference) : 如果变量有初始值,那么 Go 能够自动推断具有初始值的变量的类型。因此,如果变量有初始值,就可以在变量声明中省略 type。例:var name = initialvalue
- 声明多个变量 : var name1, name2 type = initialvalue1, initialvalue2。
- 一个语句中声明不同类型的变量 :
var (
name1 = initialvalue1,
name2 = initialvalue2
) - 简短声明 : name := initialvalue,
简短声明要求 := 操作符左边的所有变量都有初始值。
简短声明的语法要求 := 操作符的左边至少有一个变量是尚未声明的。 - 由于 Go 是强类型(Strongly Typed)语言,因此不允许某一类型的变量赋值为其他类型的值。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Think Python
Allen B. Downey / O'Reilly Media / 2012-8-23 / GBP 29.99
Think Python is an introduction to Python programming for students with no programming experience. It starts with the most basic concepts of programming, and is carefully designed to define all terms ......一起来看看 《Think Python》 这本书的介绍吧!