• 2.10 Go语言中的注释、关键字、内置函数和操作符


    注释

    一段好的代码就像艺术品,让读的人越看越有味道。注释是帮助他人理解代码最好的途径,合理添加的注释大幅度提高代码可读性。代码中的注释每个人原则都不同,我的原则是让读我代码的人,不需要问我的情况下就可以看懂全部内容。

    Go语言中的注释与C语言中保持一致,一种是双斜线开头的//,一种是区域注释/* … */

    双斜线注释

    //后面的空格并不是必须得,但是从美观角度来说,建议加上

    // Copyright © 2018 Inanc Gumus
    // Learn Go Programming Course
    // License: https://creativecommons.org/licenses/by-nc-sa/4.0/
    //
    // For more tutorials  : https://learngoprogramming.com
    // In-person training  : https://www.linkedin.com/in/inancgumus/
    // Follow me on twitter: https://twitter.com/inancgumus
    
    // package main is a special package
    // it allows Go to create an executable file
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    区域注释

    /*
    This is a multi-line comment.
    import keyword makes another package available
    for this .go "file".
    import "fmt" lets you access fmt package's functionality
    here in this file.
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    代码内部注释

    当然代码注释内部既可以写在顶部,也可以写在和代码同行的尾部,我个人习惯写在顶部,这样比较容易区分,写在代码尾部的注释类似评论,能更快速的解释代码,所以呢,还是看需求。

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	// Print “Hello, World!” to console
    	fmt.Println("Hello, World!") // Use fmt to print out
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    常用关键字(按照字母顺序)

    关键字说明
    break阻断for循环,2.8节已经讲过了
    case用于和swtich…case或select…case,其中switch…case在2.9节讲到,select…case会在并发中的channel提到
    chan管道定义,会在并发章节中提到
    const常量定义关键字,2.3节讲过了
    continue进入下一次循环,2.8节讲过了
    default默认行为,在switch…case中用到过,2.9节有示例
    defer延迟函数,下一章函数会讲到
    else与if搭配,在2.7节讲过了
    fallthrough在2.9节switch…case中讲到,用于继续执行switch中其他case
    for循环,2.8节讲过了
    func函数定义,下一章就要讲到
    go这个不是外部命令go,而是用于实现Goroutines的关键字,并发章节会讲到
    goto强制改变代码执行逻辑,破坏代码执行逻辑,所以没有讲
    if条件判断,2.7节已经讲过了
    import用于导入Module关键字,这些例子一直在用
    interface接口定义关键字,接口章节会用到
    mapGo语言中的哈希,2.6节讲到
    package包定义关键字,Packages会讲到
    range搭配for,能够对数组、切片、Map、字符串、Channel进行循环,2.8节讲过,后面讲到并发Channel时还会用到
    return函数返回,函数章节会讲到
    select和switch相似,主要用于Channel,并发章节会讲到
    stuct结构体定义,进阶章节会讲到
    switchif elseif的另一种表达方式,2.9节已经讲到
    type自定义类型定义关键字,后面讲到进阶中的结构体时会大量用到
    var变量定义关键字,在例子中大量出现

    常用内置函数(按关键字排序)

    函数名称说明
    close用于关闭channel,并发章节会讲到
    delete删除maps的元素,2.6节Map的CURD操作用到过
    len多种对象的长度,包括字符、maps、slice和数组,很多例子中出现了,2.5节特别提到过与cap区别
    cap类似len,返回对象的实际容量,2.5节讲过
    newGo语言中数据类型分配内存,与make有类似的作用,没有特别提到或用到,主要使用make方法较多,这一部分也许后面会出单独的一节来重点讲解和make区别
    make内部类型分配内存
    append在slice中增加元素,在2.5节讲到
    copy拷贝slice,在2.5节讲到
    panic用于异常处理,函数章节会讲到
    recover用于异常处理,函数章节会讲到
    print底层打印函数,主要用于调试,我们代码的例子都是用fmt模块中的print方法
    println底层打印函数,主要用于调试
    complex/real/imag主要用于处理compex numbers,没有特别讲到,如有需要后续会单独去讲这一部分

    操作符优先级

    PrecedenceOperator(s)备注
    Highest* / % << >> & &^&
    `+ -+ 可以用于证书、浮点、复杂数字的连接
    == != < <= > >=
    <-
    &&&& 和
    Lowest||
  • 相关阅读:
    【mysql 统计表里面6个月的数据】
    shell脚本实现Mysql分库分表备份
    数据增强albumentations工具
    动态规划——状态机模型
    VS Code + Vue 开发环境搭建
    C++类与动态内存分配
    【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-Chapter21-sed 进阶
    hevc 继续色度半像素差值
    FITC荧光标记果聚糖Fructan/阿拉伯聚糖Fructan/脂多糖LPS定制合成
    理解递归与循环
  • 原文地址:https://blog.csdn.net/xiaoquqi/article/details/125592613