当前位置: 首页 > article >正文

3、Go中的注释

1、注释的作用

在前面我们已经写过第一个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)  
       }  
    }  
}

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

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)

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

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

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

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

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

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

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

小结

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

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


http://www.kler.cn/a/504387.html

相关文章:

  • 【汇编】汇编编程中的指令传参方式
  • Sonatype Nexus OSS 构建私有docker 仓库
  • Anaconda安装(2024最新版)
  • day08_Kafka
  • Java Bean Validation 不适用Spring的情况下自定义validation注解
  • torch.einsum计算张量的外积
  • 隐私计算,构建安全的未来数据空间
  • Docker Desktop 中安装 MySQL 并开启远程访问的详细教程
  • spring-mvc源码分析v3.3.0
  • C++并发编程之无锁数据结构及其优缺点
  • 基于springboot的幼儿园管理系统系统
  • 蓝桥杯 男女搭配
  • Golang学习笔记_25——协程
  • 服务器一次性部署One API + ChatGPT-Next-Web
  • Shell Integration Unavailable VSCode + Cline 报错解决
  • 如何检测服务器中的DDOS攻击?
  • AUTOSAR从入门到精通-汽车信息安全框架(二)
  • 小米vela系统(基于开源nuttx内核)——openvela开源项目
  • 【Axure】1500+实用图标库
  • Unity 语音转文字 Vosk 离线库
  • 20.2、主流数据库安全分析与防护
  • 查看 Linux 系统的版本信息
  • JAVA实现2048小游戏(附源码)
  • python实现音频文件格式转换(mp3,m4a,wav,wma,aac...)
  • 【数据库系统概论】第5章 数据库完整性【!触发器】
  • 【掌握 JavaScript 数组迭代:map 和 includes 的使用技巧】