[swift-dev] console error
gparker at apple.com
Sat Jan 9 04:21:44 CST 2016
That's right. Swift's operators are whitespace-sensitive. The rules are:
* Whitespace on both sides: infix operator
* Whitespace on neither side: infix operator
* Whitespace on only one side: prefix or postfix operator
Therefore the expression `i =3` uses prefix operator = . There is no such operator, and it's reserved so you can't write your own.
`i = 3` and `i=3` and `i = 3` are both the ordinary infix operator = .
Obligatory open-source opportunity: add a compiler fix-it for this. (Perhaps just the prefix/postfix = case specifically, perhaps the more general case where the requested operator does not exist but an operator with different fixity does.)
> On Jan 8, 2016, at 10:54 PM, Jo Albright via swift-dev <swift-dev at swift.org> wrote:
> Hi Zhaoliang,
> Try adding a space between the “=“ & “3”
> var i = 3
> instead of
> var i =3
> That should fix the issue.
> The second way makes it think you are trying to use it as a prefix operator instead of an assignment.
> Nerd . Designer . Developer
> Jo Albright
>> On Jan 9, 2016, at 12:07 AM, zhaoliang via swift-dev <swift-dev at swift.org <mailto:swift-dev at swift.org>> wrote:
>> hello ,
>> I find a bug like this:
>> zhaoliangdeMacBook-Pro:~ zhaoliang$ swift
>> Welcome to Apple Swift version 2.1.1 (swiftlang-700.1.101.15 clang-700.1.81). Type :help for assistance.
>> 1> var i =3
>> repl.swift:1:7: error: prefix '=' is reserved
>> var i =3
>> 1> var i=3
>> i: Int = 3
>> swift-dev mailing list
>> swift-dev at swift.org <mailto:swift-dev at swift.org>
> swift-dev mailing list
> swift-dev at swift.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-dev