How do I access program arguments in Swift?

后端 未结 5 798
别跟我提以往
别跟我提以往 2020-12-01 03:11

C and derivatives have argc and argv (and envp) parameters to their entry point functions, but Swift doesn\'t have one proper: top-lev

5条回答
  •  时光说笑
    2020-12-01 03:41

    Process.arguments is your friend!

    Fortunately this is much easier, and built in: no importing anything, no getting your hands dirty with C, objective or otherwise.

    Consider this, let's call it args.swift:

    Swift 2 version:

    var c = 0;
    for arg in Process.arguments {
        println("argument \(c) is: \(arg)")
        c++
    }
    

    Swift 3 version:

    var c = 0;
    for arg in CommandLine.arguments {
        print("argument \(c) is: \(arg)")
        c += 1
    }
    

    We can compile and run it like this:

    $ swift -o args args.swift && ./args fee fi fo fum
    argument 0 is: ./args
    argument 1 is: fee
    argument 2 is: fi
    argument 3 is: fo
    argument 4 is: fum
    

    Note that the first argument is the program name, as you might expect.

    It seems every argument is a String, as you might also expect.

    I hope very much that Process becomes more useful as Swift matures, but right now it seems to only give you the arguments. Which is a lot, if you're trying to write a pure-Swift program.

提交回复
热议问题