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

第二周补充:Go语言中取地址符与fmt函数详解

第二周补充:Go语言中&取地址符与fmt函数详解
在Go语言中,&取地址符,用于获取变量的内存地址。具体到代码 fmt.Scanln(&celsius) 中:

  • 作用&celsius 获取变量 celsius 的内存地址,使得 fmt.Scanln 能够将用户输入的值直接写入该地址对应的变量中。
  • 必要性:若省略 &,传递的将是 celsius 的值(而非地址),此时 Scanln 无法修改原变量,导致输入失败。
  • 类比:类似C语言中的指针操作,Go通过指针(显式使用 &)允许函数直接修改外部变量。

关于 fmt 包中函数的参数

1. 输出函数
  • fmt.Print(a ...interface{})
    直接输出参数,不换行,参数间默认用空格分隔。
    示例:fmt.Print("Hello", 123) → 输出 Hello123(无空格,因类型不同可能自动加空格?实际测试可能不同)。

  • fmt.Println(a ...interface{})
    输出参数后自动换行,参数间用空格分隔。
    示例:fmt.Println("Hello", 123) → 输出 Hello 123\n

  • fmt.Printf(format string, a ...interface{})
    按格式字符串输出,严格匹配占位符(如 %f%s)。
    示例:fmt.Printf("Value: %.1f", 3.1415) → 输出 Value: 3.1

2. 输入函数
  • fmt.Scan(&a, &b)
    从标准输入读取数据,按空格分隔值,存入指针参数。
    示例:输入 10 20a=10, b=20

  • fmt.Scanln(&a, &b)
    读取一行(到换行符),按空格分隔值,存入指针参数。
    示例:输入 10 20\na=10, b=20(换行符被消费)。

  • fmt.Scanf(format string, &a)
    按指定格式读取输入,类似C的 scanf
    示例:fmt.Scanf("%d,%f", &i, &f) → 输入 5,3.14


总结

  • &:用于获取变量地址,使函数能直接修改变量(如输入函数必须用)。
  • fmt 函数参数
    • Print/Println:接受任意数量参数,自动处理格式。
    • Printf/Scanf:严格依赖格式字符串,参数类型和数量需匹配。
    • 输入函数(Scan/Scanln/Scanf必须传递指针(即 &变量)。

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

相关文章:

  • 跟着李沐老师学习深度学习(十四)
  • 记浙江大华校招Java面试
  • DDD - 整洁架构
  • 代码随想录刷题day29|(栈与队列篇:队列)225.用队列实现栈
  • dockerfile构建haproxy
  • 【SpringMVC】概述 SSM:Spring + SpringMVC + Mybats
  • 如何使用Tabby在Windows上远程ssh连接内网Linux终端无需公网IP
  • C 语言文件操作
  • nim游戏及其进阶 [SDOI2011] 黑白棋 [SDOI2019] 移动金币
  • 使用docker开发镜像编译
  • 异常处理在 Promptic 中怎么实现?
  • Android 串口通信
  • 【前端进阶】01 重识HTML,掌握页面基本结构和加载过程
  • C语言多人聊天室 ---s(服务端)
  • 哈希表入门到精通:从原理到 Python 实现全解析
  • PcVue : 点亮马来西亚砂拉越偏远村庄
  • Windows 下 Visual Studio Code 常用快捷键指南
  • Docker部署中SQLite数据库同步问题解析
  • MacOS安装Emacs
  • Linux下基本指令(4)