分享
  1. 首页
  2. 文章

Go基础语法(一)

好姑凉丶 · · 6877 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

什么是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")
}
  1. 使用命令go run hello.go名运行:


    image.png
  2. 使用 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)
}
  1. 声明单个变量 :var name type
  2. 声明变量并初始化 : var name type = initialvalue
  3. 类型推断(Type Inference) : 如果变量有初始值,那么 Go 能够自动推断具有初始值的变量的类型。因此,如果变量有初始值,就可以在变量声明中省略 type。例:var name = initialvalue
  4. 声明多个变量 : var name1, name2 type = initialvalue1, initialvalue2。
  5. 一个语句中声明不同类型的变量 :
    var (
    name1 = initialvalue1,
    name2 = initialvalue2
    )
  6. 简短声明 : name := initialvalue,
    简短声明要求 := 操作符左边的所有变量都有初始值。
    简短声明的语法要求 := 操作符的左边至少有一个变量是尚未声明的。
  7. 由于 Go 是强类型(Strongly Typed)语言,因此不允许某一类型的变量赋值为其他类型的值。

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

本文来自:简书

感谢作者:好姑凉丶

查看原文:Go基础语法(一)

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

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

用户登录

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

今日阅读排行

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

一周阅读排行

    加载中

关注我

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

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

给该专栏投稿 写篇新文章

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

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