zoukankan      html  css  js  c++  java
  • Go 语言最简单程序的结构

    Go 语言最简单程序的结构。

    在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。


    Go Hello World 实例

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

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

    接下来让我们来看下简单的代码,该代码输出了"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(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 。
      使用 fmt.Print("hello, world ") 可以得到相同的结果。
      Print 和 Println 这两个函数也支持使用变量,如:fmt.Println(arr)。如果没有特别指定,它们会以默认的打印格式将变量 arr 输出到控制台。
    6. 当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。

    执行 Go 程序

    让我们来看下如何编写 Go 代码并执行它。步骤如下:

    1. 打开编辑器如Sublime2,将以上代码添加到编辑器中。

    2. 将以上代码保存为 hello.go

    3. 打开命令行,并进入程序文件保存的目录中。

    4. 输入命令 go run hello.go 并按回车执行代码。

    5. 如果操作正确你将在屏幕上看到 "Hello World!" 字样的输出。

      $ go run hello.go
      Hello, World!
      
    6. 我们还可以使用 go build 命令来生成二进制文件:

      $ go build hello.go 
      $ ls
      hello    hello.go
      $ ./hello 
      Hello, World!
      

    注意

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

    实例

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

    Go 语言基础语法

    Go 标记

    Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:

    fmt.Println("Hello, World!")
    

    6 个标记是(每行一个):

    1. fmt
    2. .
    3. Println
    4. (
    5. "Hello, World!"
    6. )
    

    行分隔符

    在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。

    如果你打算将多个语句写在同一行,它们则必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法。

    以下为两个语句:

    fmt.Println("Hello, World!")
    fmt.Println("菜鸟教程:runoob.com")


    注释

    注释不会被编译,每一个包应该有相关注释。

    单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。如:

    // 单行注释
    /*
     Author by 菜鸟教程
     我是多行注释
     */
    

    标识符(命名变量)

    标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列,但是 第一个字符必须是字母或下划线而不能是数字。

    以下是有效的标识符:

    mahesh   kumar   abc   move_name   a_123
    myname50   _temp   j   a23b9   retVal
    

    以下是无效的标识符:

    • 1ab(以数字开头)
    • case(Go 语言的关键字)
    • a+b(运算符是不允许的)

    字符串连接(拼接)

    Go 语言的字符串可以通过 + 实现:

    实例

    package main
    import "fmt"
    func main() {
        fmt.Println("Google" + "Runoob")
    }
    

    以上实例输出结果为:

    GoogleRunoob
    

    关键字

    下面列举了 Go 代码中会使用到的 25 个关键字或保留字:

    break default func interface select
    case defer go map struct
    chan else goto package switch
    const fallthrough if range type
    continue for import return var

    除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:

    append bool byte cap close complex complex64 complex128 uint16
    copy false float32 float64 imag int int8 int16 uint32
    int32 int64 iota len make new nil panic uint64
    print println real recover string true uint uint8 uintptr

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

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

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


    Go 语言的空格(规范)

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

    var age int;
    

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

    无空格:

    fruit=apples+oranges;
    

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

    fruit = apples + oranges; 
    
  • 相关阅读:
    java 九个预定义Class对象
    Android github上开源项目、酷炫的交互动画和视觉效果地址集合
    Axure多人协作
    尺取法
    android binder 机制二(client和普通server)
    11-11前的电商
    用minGW编译ffmpeg(供替换opencv中引用的ffmpeg库)
    设计模式_状态模式
    六句代码实现对文件按时间的重命名,
    在QML应用中实现threading多任务
  • 原文地址:https://www.cnblogs.com/saoqiang/p/12459279.html
Copyright © 2011-2022 走看看