面试题答案
一键面试以下是使用Swift编写的CLI工具代码以及相关说明:
代码实现
import Foundation
// 解析命令行参数
guard CommandLine.argc == 3 else {
print("Usage: YourTool <integer1> <integer2>")
exit(1)
}
let num1 = Int(CommandLine.arguments[1])
let num2 = Int(CommandLine.arguments[2])
// 处理参数输入异常
guard let int1 = num1, let int2 = num2 else {
print("Both arguments must be valid integers.")
exit(1)
}
let sum = int1 + int2
print("The sum of \(int1) and \(int2) is \(sum)")
解析命令行参数方法
- 获取参数数量:使用
CommandLine.argc
获取传递给程序的参数数量。这里期望有两个额外参数(加上程序本身的名称,总共3个参数),因此通过guard CommandLine.argc == 3 else
进行判断。如果参数数量不符合要求,打印使用说明并退出程序。 - 获取参数值:使用
CommandLine.arguments
数组来获取具体的参数值。CommandLine.arguments[0]
是程序本身的路径,CommandLine.arguments[1]
和CommandLine.arguments[2]
分别是期望的两个整数参数。
处理参数输入异常情况
- 转换为整数:使用
Int()
初始化器将从命令行获取的字符串参数转换为整数。如果转换失败,Int()
初始化器会返回nil
。 - 判断转换结果:通过
guard let
语句确保两个参数都成功转换为整数。如果其中任何一个转换失败,打印错误信息并退出程序,提示用户两个参数都必须是有效的整数。