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

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

小结

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

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

相关推荐
随缘而动,随遇而安33 分钟前
第八十八篇 大数据中的递归算法:从俄罗斯套娃到分布式计算的奇妙之旅
大数据·数据结构·算法
孞㐑¥1 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
IT古董1 小时前
【第二章:机器学习与神经网络概述】03.类算法理论与实践-(3)决策树分类器
神经网络·算法·机器学习
水木兰亭4 小时前
数据结构之——树及树的存储
数据结构·c++·学习·算法
Jess075 小时前
插入排序的简单介绍
数据结构·算法·排序算法
老一岁5 小时前
选择排序算法详解
数据结构·算法·排序算法
CoderCodingNo5 小时前
【GESP】C++四级考试大纲知识点梳理, (7) 排序算法基本概念
开发语言·c++·排序算法
xindafu5 小时前
代码随想录算法训练营第四十二天|动态规划part9
算法·动态规划
xindafu5 小时前
代码随想录算法训练营第四十五天|动态规划part12
算法·动态规划
ysa0510306 小时前
Dijkstra 算法#图论
数据结构·算法·图论