GO语言学习(四)GO语言语言结构

Go Hello World 实例

Go 语言的基础组成有以下几个部分:

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句 & 表达式
  • 注释

接下来让我们来看下简单的代码,该代码输出了"Hello World!":

package main

import "fmt"

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

注意

需要注意的是 { 不能单独放在一行,所以以下代码在运行时会产生错误:

package main

import "fmt"

func main()
{  // 错误,{ 不能在单独的行上
    fmt.Println("Hello, World!")
}

  

让我们来看下以上程序的各个部分:

    1. 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
    2. 下一行 import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
    3. 下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
    4. 下一行 /*...*/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
    5. 下一行 fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。 
      使用 fmt.Print("hello, world\n") 可以得到相同的结果。 
      Print 和 Println 这两个函数也支持使用变量,如:fmt.Println(arr)。如果没有特别指定,它们会以默认的打印格式将变量 arr 输出到控制台。
    6. 当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。

原文地址:https://www.cnblogs.com/yuming1983/p/9732881.html

时间: 2024-08-30 08:12:39

GO语言学习(四)GO语言语言结构的相关文章

Go语言学习笔记(一) [Go语言的HelloWorld]

日期:2014年7月18日 1.简介 Go 编程语言是一个使得程序员更加有效率的开源项目.Go 是有表达力.简 洁.清晰和有效率的.它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有性的模块化程序.Go 编译到机器码非常快 速,同时具有便利的垃圾回收和强大的运行时反射.它是快速的.静态类型编译语言,但是感觉上是动态类型的,解释型语言. Go 是第一个实现了简单的(或更加简单的)并行开发,且跨平台的类 C 语言. 2.Go语言文档查看 安装好Go语言之后,其文档可以通过go do

Go语言学习(四)常用类型介绍

1.布尔类型 var v1 bool v1 = true; v2 := (1==2) // v2也会被推导为bool类型 2.整型 类 型 长度(字节) 值 范 围 int8 1 ? 128 ~ 127 uint8(即byte)1 0 ~ 255 int16 2 ? 32 768 ~ 32 767 uint16 2 0 ~ 65 535 int32 4 ? 2 147 483 648 ~ 2 147 483 647 uint32 4 0 ~ 4 294 967 295 int64 8 ? 9 2

Go语言学习(四)经常使用类型介绍

1.布尔类型 var v1 bool v1 = true; v2 := (1==2) // v2也会被推导为bool类型 2.整型 类 型 长度(字节) 值 范 围 int8 1 ? 128 ~ 127 uint8(即byte)1 0 ~ 255 int16 2 ? 32 768 ~ 32 767 uint16 2 0 ~ 65 535 int32 4 ? 2 147 483 648 ~ 2 147 483 647 uint32 4 0 ~ 4 294 967 295 int64 8 ? 9 2

go语言学习之旅--Go 语言环境安装

前言 笔者已经自学python大概已经几个月了,但是工作繁忙,而且工作中未用到python的知识.于是就渐渐生疏了,这是下定决心学习go,是因为公司有一台go编写的报表系统,而且公司逐渐在想docker转,学习go更又助于未来的工作. 关于GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,

Go语言学习(十二)面向对象编程-结构体

1.结构体的初始化方式 例如自定义一个结构体 package main import( "fmt" ) type Rect struct{ //type和struct为关键字 x,y float64 //结构体成员 widh,height float64 } func (r *Rect) Area() float64{ return r.width * r.height } func main(){ //初始结构体的几种方式: rect1 := new(Rect) rect2 := &

go语言学习四 - 复合类型字面量声明

package main import ( "encoding/json" "fmt" ) func main() { //go语言的复合大括号文面量声明非常强大和灵活 //只要在最外层声明完整的复合类型在大括号内部就不需要再声明类型而直接用大括号了 a := [][]int{ {1, 2, 3, 4}, //这里不必再用 []int{1,2,3,4} 声明,如果用的话编译器提示冗余的类型声明(Redundant type declaration) {5, 6, 7

OC语言学习 (四) SEL对象,用于日志输出的宏

SEL 对象即一个selector对象,保存一个方法的地址. Person.h #ifndef oc_Person_h #define oc_Person_h @interface Person : NSObject { int age; @protected float height; } @property int age; //编译器自动解释成 int age的get/set方法 - (void) say; - (void) testSEL; @end #endif Person.m #i

C语言学习(四)--操作符

算数操作符 + 加 - 减 * 乘 / 除 % 取模 移位操作符 >> 右移 << 左移 位操作符 & 按位与操作,只有两个位都是1,才是1,否则是0 | 按位或操作,只有两个位都是0,才是0,否则是1 ^ 按位异或操作,如果两个位不一样结果为1,如果相同,结果为0 复合赋值符 += -= *= /= %= <<= >>= &= ^= |= 比如a += b 就是a = a+b,其它的复合赋值符操作相似. 单目操作符 ! 逻辑取反 ++ c=

脚本语言学习(四)

time库的使用 time库是python中处理时间的标准库 使用import time和time.<b>()调用的格式即可使用 作用:计算机时间的表达:提供获取系统时间并格式化输出的功能:提供系统级精确计时功能,可用于程序性能分析 time库包含三类函数: 时间获取:time(),ctime(),gmtime() 时间格式化:strftime(),strptime() 程序计时:sleep(),perf_counter() 时间获取 时间戳:时间戳就是指当前系统中表示时间的一个浮点数,是计算

C语言学习——C和Java语言不同点

Java中有boolean数据类型,”真“为true,”假“为false.而且在if()括号里只能放boolean类型的值. C的基本数据类型和Java的基本一致,但C多了指针类型.指针是C语言的重点. 需要注意的是,Java定义全局变量时会自动帮你完成初始化,数字变量会自动赋0,char类型变量会自动赋'0',对象变量对自动赋null.而定义局部变量的时候Java不会自动初始化它而是报错. C定义全局变量时自动赋0:定义局部变量时会自动赋随机数.(C是弱语言,有些地方它不会报错,这让我们很难发