码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Go——下划线


            "_"是特殊标识符,用来忽略结果。

    1. 下划线在import中

            在golang中,import的作用是导入其他package。

            import下划线的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包导入,仅仅是希望它执行init()函数而已。这个时候可以使用import引用该包。即使用(import _ 包路径)只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。

            示例:

    目录结构:

    2. 下划线在代码中

    1. package main
    2. import (
    3. "os"
    4. )
    5. func main() {
    6. buf := make([]byte, 1024)
    7. f, _ := os.Open("/User/***/Desktop/test.txt")
    8. defer f.Close()
    9. for {
    10. n, _ := f.Read(buf)
    11. if n == 0 {
    12. break
    13. }
    14. os.Stdout.Write(buf[:n])
    15. }
    16. }

    解释1:

    下划线的意思是忽略这个变量。

    比如:os.Open,返回值为*os.File,error

    普通写法是 f, err := os.Open("filename")

    如果此时不需要知道返回的错误值

    就可以用 f, _ := os.Open("filename")

    此时忽略了error这个变量值 

    解释2:

    占位符,意思是那个位置本应赋值给某个值,但是我们不需要这个值。

    所以就把该值赋给下划线,意思是丢掉不要。

    这样编译器可以更好的优化,任何类型的单个值都可以丢给下划线。

    这种情况是占位用的,方法返回两个结果,而你只想要一个结果。

    那另一个就用"_"占位,而如果用变量的话,不使用,编译器是会报错的。 

    补充:

    import "database/sql"

    import _ "github.com/go-sql-driver/mysql"
            第二个import就是不直接使用mysql包,只是执行以下这个包的init函数,把mysql的驱动注册到sql包中,然后程序里就可以使用sql包来访问mysql数据库了。

  • 相关阅读:
    Android开发,获取U盘的路径
    aos动画库反向播放,pdf复制出现乱码,微信小程序底部栏联系客服
    论文笔记:Deep Trajectory Recovery with Fine-Grained Calibration using Kalman Filter
    docker常用操作
    删除链表中所有含有val的节点
    猿创征文|Spring5梦开始的地方:入门必看
    《Linux驱动:I2C驱动看这一篇就够了》
    Docker-Dockerfile
    还没弄明白微服务数据架构事务管理+ACID+一致性+CAP+BASE理论吗,看完彻底解决疑惑
    基于 I2C 协议的 AD实验(附代码)
  • 原文地址:https://blog.csdn.net/weixin_57023347/article/details/136630835
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号