3、Go中的注释

1、注释的作用

在前面我们已经写过第一个GO程序了,该程序的功能很简单,代码量不是很多,也就是几行代码。

但是大家看下面这段代码,代码量比我们写的第一个程序代码量多了很多,代码多了以后,阅读起来非常不容易。

go 复制代码
package main  
  
import "fmt"  
  
func binarySearch(arr []int, target int) int {  
  
    left, right := 0, len(arr)-1  
  
    for left <= right {  
       mid := left + (right-left)/2  
  
       if arr[mid] == target {  
          return mid  
       }  
  
       if arr[mid] < target {  
          left = mid + 1  
       } else {  
          right = mid - 1  
       }  
    }  
  
    return -1  
}  
  
func main() {  
    sortedArray := []int{1, 3, 5, 7, 9, 11, 13, 15, 17, 19}  
  
    testTargets := []int{7, 19, 20, 1, 0}  
  
    for _, target := range testTargets {  
       index := binarySearch(sortedArray, target)  
       if index != -1 {  
          fmt.Printf("目标值 %d 在索引 %d 处找到\n", target, index)  
       } else {  
          fmt.Printf("目标值 %d 未找到\n", target)  
       }  
    }  
}

接下来,看下面的代码,由于在一些代码行上有汉字,所以阅读起来就很方便。

go 复制代码
package main

  

import "fmt"

  

// binarySearch 实现了在有序整数切片中使用二分查找算法查找目标值的函数

// 参数 arr: 已排序的整数切片

// 参数 target: 要查找的目标值

// 返回值: 目标值的索引,如果未找到则返回 -1

func binarySearch(arr []int, target int) int {

    // 初始化左右边界

    left, right := 0, len(arr)-1

  

    // 当左边界小于等于右边界时继续查找

    for left <= right {

        // 计算中间位置,使用 left + (right-left)/2 避免整数溢出

        mid := left + (right-left)/2

  

        // 如果中间元素等于目标值,直接返回索引

        if arr[mid] == target {

            return mid

        }


        // 如果中间元素小于目标值,说明目标值在右半部分

        if arr[mid] < target {

            left = mid + 1

        } else {

            // 如果中间元素大于目标值,说明目标值在左半部分

            right = mid - 1

        }

    }

  

    // 未找到目标值,返回 -1

    return -1

}

  

// main 函数演示二分查找的使用

func main() {

    // 创建一个有序的整数切片

    sortedArray := []int{1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

  

    // 定义要查找的测试目标值

    testTargets := []int{7, 19, 20, 1, 0}

  

    // 遍历测试目标值,并使用二分查找进行查找

    for _, target := range testTargets {

        // 调用二分查找函数

        index := binarySearch(sortedArray, target)

        // 根据查找结果打印信息

        if index != -1 {

            fmt.Printf("目标值 %d 在索引 %d 处找到\n", target, index)

        } else {

            fmt.Printf("目标值 %d 未找到\n", target)

        }

    }

}

我们通过用自己熟悉的语言(例如,中文),在程序中对某些代码进行标注说明,这就是注释的作用,能够大大增强程序的可读性。

以后,如果是合作开发,其他程序员会经常阅读我们写的代码,当然,我们也会经常阅读别的程序员写的代码,如果代码中加了注释,那么阅读起来就非常容易了。

2、 注释分类

Go 语言支持两种类型的注释:单行注释和多行注释。

1. 单行注释 (Single-line comments)

单行注释用于注释掉一行代码。它以 // 开头,后面的内容将被视为注释,直到该行结束。单行注释可以放在代码行的任何位置,且不会影响代码的执行。

示例:
go 复制代码
// 这是一个单行注释
fmt.Println("Hello, World!") // 这是行尾注释

在上面的示例中,// 后面的文本 这是一个单行注释这是行尾注释 都是注释部分,不会被 Go 编译器执行。

2. 多行注释 (Multi-line comments)

多行注释用于注释掉多行代码。它以 /* 开始,以 */ 结束。多行注释可以跨越多行,用于注释大段代码或提供详细的说明。

示例:
go 复制代码
/*
这是一个多行注释的例子。
可以用于注释掉多行代码。
这不会影响程序的执行。
*/
fmt.Println("Hello, World!")

在上面的示例中,/**/ 之间的文本会被视为注释,并且可以跨越多行。

小结

  • 单行注释 :使用 // 开头,只注释一行内容。
  • 多行注释 :使用 /**/,可以注释掉多行内容。

这两种注释方式都有助于程序员在代码中添加说明或者临时注释掉部分代码,提升代码的可读性和可维护性。

相关推荐
打不了嗝 ᥬ᭄1 分钟前
DFS与BFS
算法·深度优先·图论·宽度优先
xiao--xin37 分钟前
LeetCode100之括号生成(22)--Java
java·开发语言·算法·leetcode·回溯
sun0077001 小时前
c++开源协程库libgo介绍及使用,srs协程,boost协程 Boost::fiber
c++
dundunmm1 小时前
【论文阅读】SDA-FC: Bridging federated clustering and deep generative model
论文阅读·算法·数据挖掘·聚类·gan·联邦聚类
旧物有情1 小时前
蓝桥杯历届真题 # 封闭图形个数(C++,Java)
java·c++·蓝桥杯
SyntaxSage1 小时前
Lua语言的多线程编程
开发语言·后端·golang
深图智能2 小时前
OpenCV的TIF红外可见光融合算法
图像处理·人工智能·python·opencv·算法·计算机视觉
重生之我在20年代敲代码2 小时前
【C++入门】详解(中)
开发语言·c++·笔记
技术猿188702783512 小时前
阿里巴巴1688 API接口深度解析:商品详情获取与按图搜索商品(拍立淘)实用指南
算法·图搜索算法
羑悻的小杀马特2 小时前
【Artificial Intelligence篇】AI 入侵家庭:解锁智能生活的魔法密码,开启居家梦幻新体验
c++·人工智能·生活