关于exclusive range运算的符号

大概去年这个时候 Swift 语言把 half-open range operator 从 .. 改为了 ..<,引起了一些讨论。

实际上..<运算符的最早先例是 Groovy 语言

 

而Groovy在初创之时,使用的是和 Ruby 一样的 range operator(.. 和 ...),在2005年4月左右将 ...改为了 ..<

 

而最早提出以 ..< 符号作为 exclusive range 运算符的,其实正是本人。这10年前的邮件记录可在此查看:http://marc.info/?l=groovy-dev&m=113684773506831

 

其实在 Swift 做了这个改进后,还是有很多人吐槽这个符号的,比如 1..<3 有点像“I love”?

 

不过我个人认为,如果一定要使用多个点来作为 range operator,那么 Swift 的这组符号选择是看下来最合理的——实际上我开发的 Jedi 在三年前就使用了 ... 作为 inclusive range op,..< 作为 exclusive range op,应该是世界上最早使用这个组合的了——幸好有git记录,后来人就不会以为我是抄 Swift 的了——实际上是 Swift 的开发者在10年后终于选择了我当初的设计……

 

不管这个符号的好坏如何,这应该是迄今为止我个人对整个编程界最大的影响了,而且随着Swift的流行,还会有更多的开发者使用我创造的这个符号,想想好像也挺有成就感的。

 

 

 

 

本文在github上的地址:https://github.com/hax/hax.github.com/issues/25

### 数字电路中的基本逻辑运算符 数字电路中常见的逻辑运算符主要包括 **AND(与)、OR(或)、NOT(非)、XOR(异或)**。这些运算符用于实现布尔代数的基本操作,在硬件设计和编程中有广泛应用。 #### 1. AND 运算符 `AND` 是一种二元运算符,表示两个输入都为真时输出才为真。其逻辑表达式通常写作 `A ∧ B` 或者 `A && B`。在数字电路中,它对应于一个与门 (AND Gate),只有当所有输入均为高电平时,输出才会是高电平[^1]。 #### 2. OR 运算符 `OR` 同样是一种二元运算符,只要任意一个输入为真,则输出即为真。它的逻辑表达形式可以写成 `A ∨ B` 或者 `A || B`。对于数字电路而言,这相当于或门 (OR Gate),只要有至少一个输入处于高电平状态,那么输出就会呈现高电平。 #### 3. NOT 运算符 `NOT` 属于一元运算符,作用是对单一变量取反。如果输入为假(`0`)则输出为真(`1`);反之亦然。这种功能通过非门 (NOT Gate, 又称 Inverter) 来完成。由于它是单目运算符,因此具有较高的优先级。 #### 4. XOR 运算符 `XOR`, 即 “exclusive or”,也是一种二元运算符。根据定义,仅当两个不同值作为输入时,该函数返回 true; 如果两者相同(无论是皆为 false 或都是 true), 则结果会变成 false。具体到实际应用上来看的话,这意味着每当存在差异之处——也就是一边为零另一边却不是的时候——我们就能得到肯定的回答。“^”被广泛接受用来代表这个概念[^2]。 以下是 Python 中模拟上述四种逻辑运算的一个简单例子: ```python def logic_operations(a, b): and_result = a & b # 使用 '&' 表达 'and' or_result = a | b # 使用 '|' 表达 'or' not_a = ~a # 使用 '~' 对整数执行按位否定 ('not') xor_result = a ^ b # 使用 '^' 表达 'xor' return { "AND": and_result, "OR": or_result, "NOT A": not_a, "XOR": xor_result } print(logic_operations(True, False)) ``` 此脚本展示了如何利用标准的Python语法来重现基础布尔逻辑行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值