Is there anything special with a main.swift
file?
I have created a command line based project in XCode. If I put an expression println("Hello, World!");
in a new swift file says test.swift, I will get the error message: Expressions are not allowed at the top level
However this expression is placed at top level in the main.swift that is created by XCode in the new project. No such exception is flagged by XCode.
Apparently yes, as per this answer. However, there are no citations as to this behaviour.
Update This is documented on the Swift blog:
... earlier we said top-level code isn’t allowed in most of your app’s source files. The exception is a special file named “main.swift”, which behaves much like a playground file, but is built with your app’s source code. The “main.swift” file can contain top-level code, and the order-dependent rules apply as well. In effect, the first line of code to run in “main.swift” is implicitly defined as the main entrypoint for the program. This allows the minimal Swift program to be a single line — as long as that line is in “main.swift”.
I wonder if it is really main.swift or perhaps you have two files. Here is a simple demo.
Folder: swift-testy
Files1: main.swift
Files2: ex1.swift
Contents are:
import Foundation println("Hello, World!") let chaulky = Dog() chaulky.bark()
import Foundation class Dog { func bark() { println("woof") // This is a comment } }
Hello, World! woof
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With