在golang里面 context
是 贯穿全文的线索,也可以说是 承上启下的关键词 , 而不是包含完整语境的上下文。
声明
本文不谈技术,纯聊一些想法。
一、无题
golang 中的 context
现在比较常用,现在大家通常都称呼 上下文
(包括市面上的书籍),不过直接按照字面意思喊 上下文 的话总感觉很别扭,也对理解 context
增加了障碍。
上学以来接触的都是 结合上下文分析 这种说法和用法,这里的上下文是 上文和下文 的总称(也可以叫语境,但略有不通)。
二、情景再现:
“给我递个苹果” 这种说法很合理,就是让别人给你拿个苹果;“告诉我上下文” 这种说法也没什么问题,就是让别人 把某句话的上文和下文告诉你。
但你如果只跟别人要通篇都出现的一句话,却管这个叫 上下文 ,这就很不合理。
三、再说 context
现在我们再看 Golang 里面的 context
:
- 它作为参数传递,可以传递多次
- 它的内容只有
value
- 除去
value
,它能传递的信息十分有限
我们即不能从 context
知道函数外有什么、做了什么,也不能通过 context
知道它传递到另一个函数以后有什么变动、做了什么, 凭什么跟它叫上下文?凭什么?!
四、终
在golang里面 context
是 贯穿全文的线索,也可以说是 承上启下的关键词 , 而不是包含完整语境的上下文。
所以 上下文 不合理,只是直译,也只是 第一批使用go的人偷奸耍滑的叫法,至于具体原因(知识有限、随大流、纯懒)就不得而知了。
建议这里可以改称 线索
,哪怕是 过渡字
也比 上下文
好。
我猜有人会想:词典上
context
这个词就是这么翻译的。你不妨多想一步:词典上的翻译是天生的吗?可不是天上啪(pia)叽(ji)掉下来一本词典,然后老天爷告诉中国人按照这个用的!
都是先辈们结合语境(敲重点,这里才是真正的上下文)总结出来的 映射表,我们作为后代,有责任本着认证、负责的更新这个表,而不是抱着一个表用一辈子。
难道还想像大清一样吗?