首页
学习
活动
专区
圈层
工具
发布

Go: 命名返回值的使用, return携带还是不携带?

在Go语言中,命名返回值提供了一种声明函数返回值的方式,它可以增加代码的可读性和灵活性。但是,在使用命名返回值时,return语句是否应该明确携带返回值,是一个常见的困惑。...不带命名返回值的return 或者,你可以省略return语句中的返回值,让Go自动返回命名返回值的当前值: func sum(a, b int) (result int) { result = a...简洁性与明确性:省略return语句中的返回值可以让代码更简洁,但可能牺牲了一些明确性。如果函数体比较复杂,明确指定返回值可能有助于提高代码的可读性。...建议做法 对于简单的函数,可以考虑省略return语句中的返回值,使代码更精简。 对于复杂的函数或重要的库,可能更适合明确指定返回值,以增加代码的可读性和可维护性。...总结 命名返回值在Go语言中是一个强大的工具,但如何使用它没有固定的规则。选择是否在return语句中携带返回值取决于多个因素,包括代码的复杂性、团队的编程风格以及可读性和可维护性的需求。

2.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    枚举很好用啊,为啥阿里不建议返回值用枚举?

    从手册可以看出,定义和使用枚举,阿里开发手册都是支持的,但是为啥,返回值就要反对了呢? 看看作者孤尽是怎么说的 由于升级原因,导致双方的枚举类不尽相同,在接口解析,类反序列化时出现异常。...Java中出现的任何元素,在Gosling的角度都会有背后的思考和逻辑(尽管并非绝对完美,但Java的顶层抽象已经是天才级了),比如:接口、抽象类、注解、和本文提到的枚举。...可是为什么在返回值和参数进行了区分呢,如果不兼容,那么两个都有问题,怎么允许参数可以有枚举。当时的考虑,如果参数也不能用,那么枚举几乎无用武之地了。...但如果是接口返回,就比较恶心了,因为解析回来的这个枚举值,可能本地还没有,这时就会抛出序列化异常。...但作为返回值,情况就反过来了。我先告诉你这些这些可以有,然后你规定这些这些可以有,除此之外都没有。但是,是我说了算而不是你,所以你的规定狗屁不是。

    2.8K20

    枚举很好用啊,为啥阿里不建议返回值用枚举?

    从手册可以看出,定义和使用枚举,阿里开发手册都是支持的,但是为啥,返回值就要反对了呢? 看看作者孤尽是怎么说的 由于升级原因,导致双方的枚举类不尽相同,在接口解析,类反序列化时出现异常。...Java中出现的任何元素,在Gosling的角度都会有背后的思考和逻辑(尽管并非绝对完美,但Java的顶层抽象已经是天才级了),比如:接口、抽象类、注解、和本文提到的枚举。...可是为什么在返回值和参数进行了区分呢,如果不兼容,那么两个都有问题,怎么允许参数可以有枚举。当时的考虑,如果参数也不能用,那么枚举几乎无用武之地了。...但如果是接口返回,就比较恶心了,因为解析回来的这个枚举值,可能本地还没有,这时就会抛出序列化异常。...但作为返回值,情况就反过来了。我先告诉你这些这些可以有,然后你规定这些这些可以有,除此之外都没有。但是,是我说了算而不是你,所以你的规定狗屁不是。

    2.5K20

    C++使用mysql判断select查询结果是否为空mysql_query返回值问题

    C++使用mysql判断select查询结果是否为空/mysql_query返回值问题 MYSQL sqlcon; string str = "SELECT * FROM dt_user where user...mysql_query(&(this->sqlcon), str) { return true; } mysql_query的返回值,无效sql语句的时候会返回false,但如果输入sql语句时有效的...解决思路如下: MYSQL sqlcon; MYSQL_RES * result; mysql_query(&(this->sqlcon), str); result = mysql_store_result...row = NULL 这个表达式的bool为假 { return true; } mysql_store_result():将mysql_query()查询到的结果集,赋给MYSQL_RES...变量 mysql_fetch_row():将MYSQL_RES变量中的一行赋给MYSQL_ROW变量,当重复调用mysql_fetch_row()时,将逐个获取结果集的行,到最后一行后返回NULL。

    13.4K41

    MySQL only_full_group_by 1055 报错的三种解决方案,临时关闭有影响吗?

    : [关闭 SQL MODE 严格模式] 从返回值可以看出,我们向 websie cher(9) 中插入了一条长为 13 的值,没有报错,直接插入,但超过 9 的部分,即「.com」被截断丢掉了。...: [开启 SQL MODE 严格模式] 我们可以从返回值看出,MySQL 直接报错,告诉你插入的数据有问题。...正如我前文所写,这个错误的关键原因是不规范的 SQL 语法,5.7 之后默认 SQL_MODE 变为严格模式。...我们先关掉 sql_mode 的严格模式来试试: [关闭严格模式] 在宽松模式下,我们可以看出这个 query 虽然可以查询,但语法和逻辑上稍有问题。...我们想对 page_url 进行排序,但 query 中也加入了 user_id ,在返回值中可以发现问题,index.html 这个页面不仅 user_id 1 的用户访问过,用户 2 和 3 也访问了

    9.2K60

    直播代码开发者发布的直播代码搭建教程

    正常情况下,从官方购买的直播代码搭建应该是免费的,但架不住盗版猖獗,很多朋友不了解行情,买了盗版直播代码,源码贩子不动技术不包搭建,需要自行寻找程序员进行搭建,而市面上开出的价格,在500-5000...准备好linux系统的云服务器 2、 在服务器上安装MySQ 3、 读写分离部署 二、 配置主服务器 编辑 /etc/my.cnf 文件,添加如下几行,添加好后保存、退出,重启数据库 log_bin=mysql-bin...binlog-ignore-db=mysql,information_schema,performance_schema,sys server-id = xxx binlog_format=mixed.../my.cnf 文件.修改字段 server-id=xxx relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin 保存退出重启mysql...; 如果返回值中的Slave_IO_Running和Slave_SQL_Running都是YES,则同步设置成功。

    1.1K20

    C中Mysql的基本api接口

    : mysql_real_connect() 的返回值 - query: 一个可以执行的sql语句, 结尾的位置不需要加 ; 返回值: - 如果查询成功,返回0。...值得注意的是在 MySQL 中,SQL 语句的关键字(如 SELECT, INSERT, UPDATE, DELETE 等)通常是不区分大小写的,这意味着 “select” 和 “SELECT” 在 MySQL...要注意的是标准 SQL 查询:如果你的查询是简单的文本,不包含二进制数据,且不需要在 SQL 语句中嵌入 null 字符,使用 mysql_query 就足够了。...通过 mysql_store_result,你可以方便地在客户端处理来自 MySQL 服务器的数据,但务必注意资源管理和错误处理,以确保应用程序的稳定性和效率。...查询类型:对于不返回结果集的查询(如 INSERT、UPDATE、DELETE),mysql_field_count 返回 0。

    84600

    【重学 MySQL】七十六、打造高效存储函数,解锁数据库编程新技能!

    type参数用于指定存储函数的参数类型,该类型可以是MySQL数据库中所有支持的类型。 RETURNS type:指定返回值的类型。 characteristic:可选项,指定存储函数的特性。...已经有一个内建的LENGTH()函数来获取字符串的长度,但为了示例目的,可以创建一个类似的存储函数: DELIMITER // CREATE FUNCTION my_string_length(input_string...返回值与参数 返回值: 存储过程:可以返回参数,如记录集,也可以没有返回值。存储过程的参数有in、out、inout三种类型。...存储函数:通常用于执行单一的计算或操作,虽然也可以包含流程控制,但其主要目的是返回一个计算结果。函数体内部必须使用RETURN语句来返回一个值。...理论上,存储函数不应该修改数据库的状态,虽然现代版本的MySQL允许函数修改数据,但这通常不推荐。

    58710

    MariaDBMySQL存储过程和函数学习心得

    但目前,这个还没有任何意义。 [not] deterministic:deterministic的意思是确定的。这里的意思是函数返回值是明确的,而非具有随机性的值。...not deterministic表示返回值是不确定的,这是系统默认值。当优化器知道函数返回值是确定值时,将选择一个更优化的执行计划。...如果返回值是确定的,却定义为not deterministic,则性能会降低,如果返回值是不确定的,却定义为deterministic,则报错。...contains sql表示body不包含读和写数据的语句,例如SET和DO;no sql表示body不包含SQL语句;reads sql data表示body包含读数据的语句,但不包含写数据的语句,如...但与OUT不同的是,INOUT的用户变量有初始值,这个初始值会直接应用在存储过程中。而OUT的用户变量虽然也有初始值,但这个初始值会自动转换为NULL。 以下是INOUT参数类型的示例。

    1.5K30

    MySQL 存储过程

    out:该参数可以作为输出,也就是说该参数可以作为返回值。 inout:该参数既可以作为输入也可以作为输出,也就是说该参数需要在调用的时候传入值,又可以作为返回值。...rows affected (0.05 sec) 1.2.4 修改存储过程 存储过程不能修改,只能先删除,然后重新创建 1.2.5 删除存储过程 ☞ 语法 # if exites 可以省略,但是不建议...(0.07 sec) 1.3 自定义函数 1.3.1 创建函数 ☞ 语法 # 参数可选, 返回值必须要有,否则会报错 create function 函数名(参数名称 参数类型) returns 返回值类型...if exists fun; Query OK, 0 rows affected (0.07 sec) 1.3.5 存储过程与函数的区别   存储过程的关键字为 procedure,返回值可以有多个,...函数的关键字为 function,返回值必须有一个,调用用 select,一般用于查询单个值并返回。

    17.7K31
    领券