《Go语言编程》书中另外一处错误

《Go语言编程》一书中【2.4.1 条件语句】有一处错误,应当是书中使用Go语言版本低于1.1版所致,原文如下:

在有返回值的函数中,不允许将“最终的” return语句包含在if...else... 结构中,
否则会编译失败:
function ends without a return statement。
失败的原因在于, Go编译器无法找到终止该函数的return语句。编译失败的案例如下:
func example(x int) int {
    if x == 0 {
        return 5
    } else {
        return x
    }
}

1.1版Go语言和之后的新版已经支持if else条件语句直接return返回值。

我使用最新稳定版1.3.3编译和运行该段代码已正常。

时间: 2024-11-07 10:50:54

《Go语言编程》书中另外一处错误的相关文章

C++primer原书中的一个错误(派生类using声明对基类权限的影响)

在C++primer 第4版的 15章 15.2.5中有下面这样一段提示: "注解:派生类可以恢复继承成员的访问级别,但不能使访问级别比基类中原来指定的更严格或者更宽松." 在vs2010中经过验证,这段话是错误的.具体见以下代码: //Base.h #pragma once #include <iostream> using namespace std; class Base { public: Base(void); ~Base(void); size_t size()

《Go语言编程》calc.go的错误

最近看由人民邮电出版社许式伟 吕桂华等编著<Go语言编程>[第1章初识Go语言][1.5 工程管理]时,发现了示例代码calc.go有几处错误,args := os.Args数组变量args[0]代表程序自身,3个if语句len(args)条件判断右值也都小了1,按照书本编写代码运行时将会一直执行匿名函数Usage(),显示如下: USAGE: calc command [arguments] ... The commands are: add     Addition of two valu

C语言程序编写中犯的错误的记录(一)

今天学习用到了<C程序设计(第四版)>的求两个数的最大值的程序devcpp程序:#include <stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d\n",c);system("pause");return 0;}int max(int x,int y){int z

go语言编程音乐库代码

go语言编程书上有一些代码有误和遗漏的地方,这里就行了修改与加如了一小段代码. ---开始,我也搜个百度,大多都是一样的,而且在remove代码块还是有些问题(不能是传name). 好吧!!不多说了.下面展示所有的代码. ------------------------------------------------------------------------------------------------------ 先贴入口文件. mplayer.go package main impo

R语言编程中的常见错误

R语言编程中的常见错误有一些错误是R的初学者和经验丰富的R程序员都可能常犯的.如果程序出错了,请检查以下几方面.? 使用了错误的大小写.help().Help()和HELP()是三个不同的函数(只有第一个是正确的).? 忘记使用必要的引号.install.packages("gclus")能够正常执行,然而Install.packages(gclus)将会报错.? 在函数调用时忘记使用括号.例如,要使用help()而非help.即使函数无需参数,仍需加上().? 在Windows上,路

《Go语言编程》【2.7 完整示例】的错误

今天看<Go语言编程>再次发现了两处错误,一处是目录名称algorithms,根据上下文推测,目录名应当是没有最后一个字幕s的algorithm,因为最后main主程序import导入包时.调用排序函数时,以及编译环节时,都采用了algorithm这个名字,书中结构如下图: 同时按照书中所示的程序目录结构编译会报错: can't load package cannot find package 经过重新整理,修改成如下目录结构后编译不再报无法加载包和无法找到包的错误: 下图是修改成正确结构后编

03--(二)编程实践中C语言的一些常见细节

编程实践中C语言的一些常见细节(转载) 对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见,省略了异常处理.我不希望读者死记硬背这些细节,而是能在自己的平台上进行实验从而获得对应的结果.另外,本文仅仅关注于C,可能会考虑C++的表现,但在C++和C#环境下的编译器所获得的看似C代码而实不同的结果不作为参考.基础的东西比如“函数参数传值”.“转义字符”

R语言编程艺术(2)R中的数据结构

本文对应<R语言编程艺术>第2章:向量:第3章:矩阵和数组:第4章:列表:第5章:数据框:第6章:因子和表 ========================================================================= R语言最基本的数据类型就是向量(vector),单个数值和矩阵都是向量的一种特例. 声明:R中不需要声明变量,但是注意函数式语言的特性,如果读写向量中的元素时,R事先不知道对象是向量的话,则函数没有执行的对象.如下代码是无法工作的: y[1]

《Go语言编程》【2.6.2 defer】章节的代码错误

<Go语言编程>[2.6.2 defer]章节函数CopyFile代码有误,变量dstName并未声明,按照上下文推测应当是笔误,书中代码样式如下: 将dstName改成dst就正确了.