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!")

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

小结

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

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

相关推荐
言之。5 分钟前
【Go语言】RPC 使用指南(初学者版)
开发语言·rpc·golang
雾月5524 分钟前
LeetCode 1292 元素和小于等于阈值的正方形的最大边长
java·数据结构·算法·leetcode·职场和发展
OpenC++1 小时前
【C++QT】Buttons 按钮控件详解
c++·经验分享·qt·leetcode·microsoft
YuforiaCode2 小时前
第十二届蓝桥杯 2021 C/C++组 直线
c语言·c++·蓝桥杯
知来者逆2 小时前
计算机视觉——速度与精度的完美结合的实时目标检测算法RF-DETR详解
图像处理·人工智能·深度学习·算法·目标检测·计算机视觉·rf-detr
阿让啊2 小时前
C语言中操作字节的某一位
c语言·开发语言·数据结构·单片机·算法
এ᭄画画的北北2 小时前
力扣-160.相交链表
算法·leetcode·链表
草莓啵啵~3 小时前
搜索二叉树-key的搜索模型
数据结构·c++
共享家95273 小时前
深入理解C++ 中的list容器
c++
孞㐑¥3 小时前
C++11介绍
开发语言·c++·经验分享·笔记