zoukankan      html  css  js  c++  java
  • 区块链基础语言(五)——Go语言结构

    一、第一个Go程序

    我们第一个Go程序以最简单的Hello world作为开始。所有Go语言程序文件的文件名都以“.go”结尾,该程序可以命名为:helloWorld.go。

    二、程序结构分析

    Go语言程序一般由关键字、包、常量、变量、运算符、符号、类型和函数组成。在这个程序仅涉及到关键字、包、符号和函数,以下对这些内容做简要介绍。这些内容的详细介绍以及常量、变量、运算符、类型等知识点在后面章节逐一展开。

    2.1 关键字

    关键字只能在特定的语法结构中使用,不能用于自定义名字。在Go语言程序里,有25个内置关键字和36个预定义标识符,如表1和表2所示。


    在这个程序里涉及到的关键词有:package、import、func。

    ◆ package

    声明该程序所属的包,类似于其它语言的库或者模块。

    ◆ import

    导入需要的第三方包。例如这个程序通过导入第三方包fmt实现格式化输出。

    ◆ func

    函数声明的关键字。

    2.2 包

    2.21 声明包

    每个Go程序的第一行代码都是用于声明此程序所属的包。一般程序关于包的声明格式为:

    package 包名
    

    在工程管理那一章里,我们介绍了Go语言一个特殊的包——main包,它包含了main()主函数。这个程序的第一行代码就是对main包的声明:

    package main
    

    2.22 导入包

    如果这个程序需要用到第三方包中的信息,就需要导入第三方包。例如,在这个程序里需要使用第三方包fmt中的函数来格式化输出,因此需要导入fmt:

    import "fmt"
    

    2.23 符号

    当一个程序需要导入第三方包时,第三方包的包名要用到一个双引号;如果一个程序需要导入多个第三方包,则导入格式中还需要用到小括号。例如:

    import (
        "fmt"
        "strconv"
    )
    

    2.4 函数

    2.4.1 函数的声明

    函数是Go程序里重要的一部分,函数包括内置函数和自定义函数,在后面章节会重点介绍函数的相关知识。函数声明的关键词是func,一般函数的定义包含以下部分:

    func 函数名(参数列表)(返回值列表) {
        // 函数体
    }
    

    本程序里包含一个特殊的函数——main()函数。main()函数是Go可执行程序的起点,main是函数名,参数为空,没有返回值。

    func main() {
        // 函数体
    }
    

    2.4.2 导入包的函数的调用

    调用导入包的函数格式:

    包名.函数名
    

    这里调用了包fmt中的Println()函数,Println()函数位于第三方包,函数首字母大写,可以被当前包调用:

    fmt.Println()
    

    2.5 行注释和快注释

    在Go语言程序代码中,为了提高程序代码的可读性,需要对一个语句、程序段、函数等进行解释说明或提示,这种解释说明或提示就叫做注释。Go语言程序的注释有两种:行注释和块注释。

    行注释:注释语句用一行就可以结束,一般用“//行注释内容”表示。

    块注释:注释语句需要多行,一般用“/*块注释内容*/”表示。

    三、Go语言程序格式书写规范要求

    ◆ 首字母(包括全局变量名、函数名、结构体类型名、结构体成员变量名)大写的可以由package外部访问,首字母小写的只能在package内部访问;
    ◆ 句尾一般不需要“;”,如果一行写多条语句用“;”隔开;
    ◆ “{”必须和func在同一行;
    ◆ 所有的标点符号都必须是英文格式。

     

    参考资料:
    [1] (美)艾伦A.A.多诺瓦(Alan A. A. Donovan),(美)布莱恩W.柯尼汉(Brian W.Kernighan)著;李道兵等译.—北京:机械工业出版社,2017.1(2017.12重印):20
    [2] 许式伟,吕桂华.Go语言编程[M].北京:人民邮电出版社,2012:11.

  • 相关阅读:
    [2012山东ACM省赛] Fruit Ninja II (三重积分,椭球体积)
    [2012山东ACM省赛] The Best Seat in ACM Contest (模拟)
    [2012山东ACM省赛] n a^o7 !(模拟,字符替换)
    [ACM] Hrbustoj 1376 能量项链 (区间动态规划)
    红黑树 c++ 实现
    八大排序算法
    git 常用命令
    linux 学习笔记 day1
    挑战:数据提取 — 实验楼
    挑战:历史命令 — 实验楼
  • 原文地址:https://www.cnblogs.com/efish/p/10489112.html
Copyright © 2011-2022 走看看