- 主题:[转载]Linus Torvalds 称 C++ 是一种很烂的语言
是可能带来这两大问题
但是有趣的是 if err return 对我来说却没有这个问题
1.这种范式避免了较深的逻辑嵌套,反而读起来简单
2.忘记错误检查可能会,但是JAVA更容易不进行错误检查
go语言这种异常流单独返回,反而提醒做错误检查
3.IDE会直接生成代码片段,所以还好
【 在 here080 的大作中提到: 】
: 写起来费劲只是一个小问题。
: 但是写起来费劲有可能会带来两个大问题。
: 1. 读起来也费劲。
: ...................
--
FROM 114.249.21.*
其实golang也还是做了panic么
虽然思路有点绕
【 在 littleSram 的大作中提到: 】
: 是可能带来这两大问题
: 但是有趣的是 if err return 对我来说却没有这个问题
: 1.这种范式避免了较深的逻辑嵌套,反而读起来简单
: ...................
--
FROM 122.226.188.*
其实这两个问题都可以解决。
1. 可读性问题。可以通过定义宏(这个算是少见的合理应用宏)
RETURN_IF_ERROR(Foo());
2. 忘记检查返回值。可以用Status类,然后用编译工具来保证如果忘记使用返回的Status值则产生一个错误。
可以参见absl::Status
https://abseil.io/docs/cpp/guides/status
【 在 littleSram 的大作中提到: 】
: 是可能带来这两大问题
: 但是有趣的是 if err return 对我来说却没有这个问题
: 1.这种范式避免了较深的逻辑嵌套,反而读起来简单
: ...................
--
FROM 76.126.252.*
go没有宏。
C程序里面这个宏其实很多时候名字更短,叫C或者D。Rust里是?。总之希望它不那么显眼的人更多。
【 在 here080 的大作中提到: 】
: 其实这两个问题都可以解决。
: 1. 可读性问题。可以通过定义宏(这个算是少见的合理应用宏)
: RETURN_IF_ERROR(Foo());
: ...................
--
FROM 58.37.58.*
其实说白了就是用返回值模拟了异常。
主要还是C++的异常设计得太难用。一个函数默认就可以随便抛异常,这谁顶得住?
【 在 ilovecpp 的大作中提到: 】
: go没有宏。
: C程序里面这个宏其实很多时候名字更短,叫C或者D。Rust里是?。总之希望它不那么显眼的人更多。
--
FROM 76.126.252.*
--
FROM 223.74.68.*
那不行吧
一个printf老大了,就几k rom的那些设备为啥要这个
【 在 ilovecpp 的大作中提到: 】
: 实际上C++98及以后的大部分改变都是为了把标准库(和其它库)做好(不如说稍微弥补之前做烂的部分),不是为了普通人直接用。
:
: 究其原因,C++和C,Rust都受数学的极简风格影响,能用库实现的就绝不添加核心语言特性。
: ...................
--
FROM 223.104.39.*
不然这个异常要怎么设计比较好呢?
如果异常还需要特殊的语法,像 java 那样的话,程序员的负担会很重啊。
java 没法用普通的文本编辑器的最大原因可能是 checked exception 的设计。没有 IDE 就无法识别要在函数签名里面 throws 什么异常。
【 在 here080 (hero080) 的大作中提到: 】
: 其实说白了就是用返回值模拟了异常。
: 主要还是C++的异常设计得太难用。一个函数默认就可以随便抛异常,这谁顶得住?
--
FROM 112.47.122.*
Java 是不是唯一一个离开了集成开发环境就没法写程序的语言?
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 不然这个异常要怎么设计比较好呢?
: 如果异常还需要特殊的语法,像 java 那样的话,程序员的负担会很重啊。
: java 没法用普通的文本编辑器的最大原因可能是 checked exception 的设计。没有 IDE 就无法识别要在函数签名里面 throws 什么异常。
: ...................
--
FROM 115.239.231.*
java的异常设计最起码是基本合理的。
你自己写的函数,会抛出什么异常,这是API设计的一部分。你不应该以一种“哥反正啥都不处理,我调用的东西有啥异常我就抛啥”的态度来对待。理论上你只有搞清楚你自己写函数对外能且应该抛出什么异常,你才能合理的处理你从底层接收到的异常:是处理掉呢还是转化成别的异常还是直接不管抛出。
写python(大工程)最大的痛点之一就是尼玛我调用的这个函数会抛出啥神奇的异常根本就无法提前搞清楚。等上线了发现BUG再紧急修补。
【 在 hgoldfish 的大作中提到: 】
: 不然这个异常要怎么设计比较好呢?
: 如果异常还需要特殊的语法,像 java 那样的话,程序员的负担会很重啊。
: java 没法用普通的文本编辑器的最大原因可能是 checked exception 的设计。没有 IDE 就无法识别要在函数签名里面 throws 什么异常。
: ...................
--
FROM 76.126.252.*