Go——下划线

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

1. 下划线在import中

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

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

        示例:

目录结构:

2. 下划线在代码中

package main

import (
	"os"
)

func main() {
	buf := make([]byte, 1024)
	f, _ := os.Open("/User/***/Desktop/test.txt")
	defer f.Close()
	for {
		n, _ := f.Read(buf)
		if n == 0 {
			break
		}
		os.Stdout.Write(buf[:n])
	}
}

解释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数据库了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/451052.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数组扩展方法(二)

以下将对Array.prototype上的方法进行整理,es5中数组遍历的方法在 数组扩展方法(一)可以查看 会改变原始数组 以下方法都在Array.prototype原型上 push 数组尾部插入元素shift 数组首部删除元素unshift 向数组首部添加元素pop 数组尾部删除…

深入探究:AVL树的平衡之道

文章目录 一、AVL树的原理AVL树的定义和特性平衡因子的概念 二、AVL树的自平衡策略a. 单旋(single rotation)1. 左单旋(Left Rotation):2. 右单旋(Right Rotation): b. 双旋&#xf…

双向数据绑定:Vue.js的魔法背后

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【PHP+代码审计】PHP基础——流程控制

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

大规模自动化重构框架--OpenRewrite浅析

目录 1. OpenRewrite是什么?定位? 2. OpenWrite具体如何做? 3. 核心概念释义 3.1 Lossless Semantic Trees (LST) 无损语义树 3.2 访问器(Visitors) 3.3 配方(Recipes) 4. 参考链接 Open…

FPGA 按键控制串口发送

按键消抖 消抖时间一般为10ms,我使用的板子是ACX720,晶振为50MHZ,20ns为一周期。 状态机 模块设计 设计文件 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2023/01/11 12:18:36 // Design Name: // Module Name…

Linux应用 inotify监控文件变化

1、前言 inotify是Linux内核提供的一种文件系统监控机制,可以用来监视文件系统的变化,如文件创建、删除、修改、移动等。通过inotify,用户空间程序可以实时获取文件系统的变化事件,并做出相应的处理。 主要特点: 实…

C++进阶之路---二叉搜索树详解 | 具体实现

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、二叉搜索树简介 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树&am…

设计模式九:装饰器模式

文章目录 1、装饰器模式2、示例3、装饰器模式与适配器模式4、装饰器模式和代理模式5、java io流的装饰器模式 1、装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构…

H5 微商宣传引流跳转微信单页源码

源码名称:H5 微商宣传引流跳转微信单页源码 源码介绍:一款微商宣传引流单页源码,源码带有导师微信二维码,点击复制微信号并跳转到微信功能【跳转后需自行贴贴搜索】。可用于各种微商团队宣传。 需求环境:H5 下载地址…

如何将应用一键部署至多个环境?丨Walrus教程

在 Walrus 平台上,运维团队在资源定义(Resource Definition)中声明提供的资源类型,通过设置匹配规则,将不同的资源部署模板应用到不同类型的环境、项目等。与此同时,研发人员无需关注底层具体实现方式&…

基与HTML5的塔防游戏设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 项目背景与相关技术 3 1.1 背景与发展简介 3 1.2 HTML5技术及其优势 4 1.3 JavaScript开发的优势与劣势 4 1.4 CSS样式表在开发中的用处 5 1.5 本章小结 6 2 系统分析 7 2.1 需求分析 7 2.2 问题分析 7 2.3 流程设计 7 2.3 功能分析 8 2.…

私立医院的革命者:大数据解决方案全面解析

第一部分:背景 在信息化飞速发展的今天,医疗行业正经历着一场深刻的数字化转型。特别是对于私立医院来说,要在这个变革的浪潮中立于不败之地,就必须拥抱新技术,优化服务流程,提高医疗质量。大数据技术&…

基于深度学习的植物类别检测系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型:     yolov8 yolov8主要包含以下几种创新:         1. 可以任意更换主干结构,支持几百种网络主干。 数据集:     网上下载的数据集&#x…

【Linux】常见的基本指令(下)

在本篇博客中,继续介绍Linux的常见的基本指令。 一.find指令 find指令是一条搜索指令,在目录结构中搜索文件。 find [目录名] -name [文件名] 在指定的目录下以文件名的搜索方式去搜索文件 二.which指令 which指令是只用来搜索命令在那个路径下…

Ableton Live 12 Suite:音乐创作的全能工作站 mac版

在数字音乐制作的领域中,Ableton Live 11 Suite 无疑是引领潮流的旗舰产品。作为一款综合性的音乐制作和演出软件,它提供了从创作灵感的萌芽到最终作品完成的全方位解决方案。 Ableton Live 12 Suite Mac版软件获取 Ableton Live 11 Suite 凭借其强大的…

登录与注册功能(简单版)(1)登录

目录 1、需求 2、怎样实现 3、步骤 1)创建login.html 2)创建user数据表 3)IDEA连接数据库 4)pom.xml中添加MyBatis和MySQL驱动坐标 5)创建User实体类 6)创建UserMapper.xml映射文件 7&#xff0…

实体好做,还是电商好做?最适合新手的是哪种?

我是电商珠珠 时间过得很快,距离2025年转眼间也就只剩下了9个月,部分人想要充分利用自己的时间去做一些可以赚钱的项目。 现在创业要么做实体店,要么做自媒体,要么就做电商。按照现在的经济发展趋势,开实体店甚至不能…

Tiktok视频播放为何为0?4大原因小白需了解

原因一、养号失败,被判为营销号 注册了tiktok账号以后,是需要一段时间进行养号,培养账号权重的!而有些小伙伴未经养号,直接注册上手开始发视频!这样很容易导致视频没有播放!因为这样连续的一系…

比派电器T6白色系高速吹风机,高品质保证下,追求极致性价比

广东比派电器科技有限公司于2020年成立于东莞市松山湖高新技术企业园区融易大厦,公司聚焦于小家电的研发,生产,销售。专注在小家电的PCBA研发,产品设计,成品生产。提供小家电产品一站式解决方案,致力于成为…