Go语言学习-day02

Go 语言程序的基本结构


先来看看我们之前运行的Hello World范例

package main                        
import "fmt"                        
func main() {                       
   /* 这是我的第一个简单的程序 */       
    greet := "Hello World!"         
    fmt.Println( greet )  
}

这几乎是最短的Golang语言程序,但麻雀虽小,五脏俱全,它包括一下几个部分

包声明

package main定义了包名

我们必须在源文件中非注释的第一行指明这个文件属于哪个包,如: package main

package main 表示一个可独立运行的程序,每个Go应用程序都包含一个名为main的包


引入其它包

import "fmt"告诉Go编译器这个程序需要使用fmt 包(的函数,或其他元素)

fmt包实现了格式化IO(输入/输出)的函数


函数

func main() 是程序开始执行的函数

main函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有init()函数则会先执行该函数)


注释

//是注释,在程序执行时将被忽略

单行注释以//开头,是最常见的注释形式,我们可以在任何地方使用以//开头的单行注释

多行注释也叫块注释,以/*开头,并以*/结尾,且不可以嵌套使用

多行注释一般用于包的文档描述或注释成块的代码片段


变量

greet := "Hello World!"语句声明了一个字符串变量greet

等价于 var greeting string = "Hello World!:

Golang 就有类型推导功能,只要等号后边的值是可确定类型的,就可以省略 类型声明

当使用Go语言的类型推导功能时,用:= 代替 = 进行赋值


语句&表达式

fmt.println(...)可以将字符串输出到控制台,并在最后自动增加换行字符\n

使用fmt.Print("hello,world\n")可以得到相同的结果

Print 和 Println这两个函数也支持使用变量,如:fmt.Println(arr)

如果没有特别指定,它们会以默认的打印格式将变量arr输出到控制台


标识符

hello 是一个标识符

标识符的大小写遵循以下规则

1、当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的public);

2、标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的protected);

执行Go程序


我们已经了解了 Go 语言的基本结构,现在让我们看下如何编写 Go 代码并执行它

1、 打开你最熟悉的代码编辑器,比如Sublimetext3
2、 将以上代码复制到编辑器中;
3、 单击菜单栏上的文件(File)->保存(Save)命令将文件保存为hello.go
4、 打开终端(命令提示符),切换到hello.go文件的保存目录;
5、 输入命令gorunhello.go并按回车执行代码;
6、 如果操作正确你将在屏幕上看到*“HelloWorld!”*字样的输出;

 $ go run hello.go
    Hello, World!

Go语言的基础语法

1.Go标记


标记可以是关键字,标识符,常量,字符串或符号

Go程序可以由多个标记组成,例如下面的Go语言由6个标记组成

fmt.Println("Hello,World!")

1、fmt

2、.

3、Println

4、(

5、"Hello,World!"

6、)

行分隔符


Go语言语法规定,每一行代表一个语句结束,比如下面是两个语句

每个语句不需要像C家族中的其他语言一样以分号(;)结尾,这些工作会由Go编译器自动完成

fmt.Println("Hello, World!")

如果我们打算将多个语句写在同一行,则必须使用分号(;)人为区分

当然实际开发我们不会那么做,为啥要省个那么一两行,造成代码不可读

注释


Go语言注释器会自动忽略注释

单行注释是最常用的注释形式,我们可以在任何地方使用以//开头的单行注释

多行注释也叫块注释,均以/*开头,并以*/结尾

标识符


标识符用来命名变量、类型等程序实体

一个合法的标识符应该遵守以下规则

1、可以是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列;

2、以字母或下划线开头,而不能是数字;

3、不能是Golang语言关键字;

 

下面是 Go 程序中有效的标识符:
mahesh   kumar   abc   move_name   a_123
myname50   _temp   j   a23b9   retVal

下面这些标识符则是无效的
  • 1ab(以数字开头)
  • case(Go 语言的关键字)
  • a+b(运算符是不允许的)

关键字


下表列出了 Go 语言中的 25 个关键字或保留字

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

当然,除了以上的关键字,还有 36 个预定义标识符

appendboolbytecapclose
complexcomplex64complex128uint16copy
falsefloat32float64imagint
int8int16uint32int32int64
iotalenmakenewnil
panicuint64printprintlnreal
recoverstringtrueuintuint8
uintptr

程序一般由关键字、常量、变量、运算符、类型和函数组成

程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}

程序中可能会使用到这些标点符号:.、,、;、: 和 …

Go语言的空格


Go语言中变量的声明必须使用空格隔开

var age int

语句中适当使用空格能让程序看易阅读

无空格:

fruit=apples+oranges;

在变量与运算符间加入空格,程序看起来更加美观

fruit = apples + oranges;

Go语言数据类型


数据类型用于声明函数和变量

数据类型指的用于声明不同类型的变量或函数的一个广泛的系统。

变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式

Go语言按类别有以下几种数据类型:

类型描述
布尔型布尔型的值只可以是常量 true 或者 false
数字类型包括整型 int 和浮点型 float
Go 语言支持整型和浮点型数字,并且原生支持复数
字符串类型字符串就是一串固定长度的字符连接起来的字符序列
Go 的字符串是由单个字节连接起来的
Go 语言的字符串的字节使用 UTF-8编码标识 Unicode 文本
派生类型包括:(a) 指针类型(Pointer)(b) 数组类型(c) 结构化类型(struct)
(d) Channel 类型(e) 函数类型(f) 切片类型
(g) 接口类型(interface)(h) Map 类型

数字类型


1. 整形

类型描述
uint8无符号 8 位整型 (0 到 255)
uint16无符号 16 位整型 (0 到 65535)
uint32无符号 32 位整型 (0 到 4294967295)
uint64无符号 64 位整型 (0 到 18446744073709551615)
int8有符号 8 位整型 (-128 到 127)
int16有符号 16 位整型 (-32768 到 32767)
int32有符号 32 位整型 (-2147483648 到 2147483647)
int64有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

2. 浮点型

类型描述
float32IEEE-754 32位浮点型数
float64IEEE-754 64位浮点型数
complex6432 位实数和虚数
complex12864 位实数和虚数

3. 其他数字类型

下表列出了其它更多的数字类型

类型描述
byte类似 uint8
rune类似 int32
uint32 或 64 位
int与 uint 一样大小
uintptr无符号整型,用于存放一个指针
  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值