linux编译多个函数,Swift on Linux —— 多文件协同编译
前言
在一个工程中应该存在多个 .swift 文件用于存放不一样的程序逻辑,这篇指引是继续上一篇文章编写的。
创建一个文件
vi Greeter.swift
在 Greeter.swift 中输入以下内容
func sayHello(name: String) -> String {
return "Hello, \(name)"
}
调用 sayHello 函数
在 Swift 中,如果同属一个包内的文件,不需要 import。
编辑 main.swift
print(sayHello("Pony"))
重新执行 swift build,再次运行程序,Shell 输入Hello, Pony
获取 Shell 命令行参数
在 Swift 中,使用 Process.arguments 获取命令行输入,它是一个[String]数组,我们可以通过此数组获取命令行输入,它必然是一个 >= 1 的数组,第一个元素是程序名称自己。
将 main.swift 修改一下
let arguments = Process.arguments
if arguments.count >= 3 {
if arguments[1] == "sayHello" {
print(sayHello(arguments[2]))
}
else {
print("Use DemoProject sayHello xxx")
}
}
else {
print("Use DemoProject sayHello xxx")
}
重新编译,然后在 Shell 中执行以下命令
.build/debug/DemoProject sayHello Pony
Hello, Pony
结语
我们在本节中学习了如何使用多个文件协同构建一个工程的方法,swift 的最大好处是无须像 Objective-C 一样编写一堆无用的 import 头文件。
跨工程调用的时候,你只需要 import Package 就可以了,这会在后面继续介绍。
扩展
尝试一下执行
.build/debug/DemoProject sayHello `whoami`
linux编译多个函数,Swift on Linux —— 多文件协同编译相关推荐
- linux C语言access()函数(检查用户对文件的权限)(判断文件是否存在)
文章目录 man 2 access 20220601 不知道上面所说的pathname的符号链接取消引用是什么意思 man 2 access ACCESS(2) Linux Programmer's ...
- linux运行getch吗,在linux中使用getch()函数
http://blog.csdn.net/xiaoweige207/article/details/6206265 由于在Linux中没有conio.h文件,所以不能直接用getch()函数,下面介绍 ...
- 在linux中使用getch()函数
#include <termio.h>int getch(void) {struct termios tm, tm_old;int fd = 0, ch;if (tcgetattr(fd, ...
- linux 内核flush,armv8(aarch64)linux内核中flush_dcache_all函数详细分析
/* * __flush_dcache_all() * Flush the wholeD-cache. * Corrupted registers: x0-x7, x9-x11 */ ENTRY( ...
- linux getline参数,Linux下的getline函数
最近在做国嵌的mp3项目,在mp3主控程序中用到了这个函数,挺好使的,在这里记录一下.注意是linux下的,不是C++中的. 函数原型 ssize_t getline(char **lineptr, ...
- 《Linux编程》学习笔记 ·002【Linux常用工具GCC、GDB、Make】
注:前言.目录见 https://blog.csdn.net/qq_44220418/article/details/108428971 文章目录 一.GCC编译器 1.GCC编译程序的流程 2.GC ...
- 从预编译的角度理解Swift与Objective-C及混编机制
本文从预编译的基础知识入手,由浅至深的介绍了 Objective-C 和 Swift 的工作机制,并通过这些机制来解释混编项目中使用到的技术和各种参数的作用,由此来指导开发者如何进行混编. 写在前面 ...
- .NET1.1中预编译ASP.NET页面实现原理浅析[1]自动预编译机制浅析
.NET1.1中预编译ASP.NET页面实现原理浅析[1]自动预编译机制浅析 .NET1.1中预编译ASP.NET页面实现原理浅析[1]自动预编译机制浅析 作者:&;nbsp来自:网络 htt ...
- Android APK+Dex文件反编译及回编译工具
本帖最后由 zhu891108 于 2012-8-3 11:00 编辑 大家好! 相信很多人玩智能手机,无论是塞班,安卓等等,不只是看重各种软件的功能,而更多的是看重系统的可定制性,可以自己动手DIY ...
最新文章
- mc幻想乡java_我的世界1.7.2幻想乡整合版下载_我的世界1.7.2东方幻想乡下载_游戏之家...
- 如何看懂照片的直方图
- NSMutableString和NSString区别,及相互转换方法
- php自动释放mysql连接,php怎么关闭mysql连接
- “云网管” ---云上构建网络自动化体系
- 灵活、轻便,阿里开源简化GNN应用框架Graph-Learn
- return to dl_resolve无需leak内存实现利用
- Mysql:语法:标志符、关键字
- python中的深拷贝和浅拷贝
- bytes和string 与 “w“/“r“ “wb“/“rb“的对应关系
- 如何在ADS使用VerilogA模型,并扫描参数
- 如何在企业微信中使用微搭低代码
- Windows10使用自带表情包
- linux 查看用户访问ip,(总结)按时按登录IP记录Linux所有用户操作日志的方法(附脚本)...
- 针对前端初级学者,如何在windows下搭建react-native环境详细教程
- stm32mp157开发板常用系统工具使用
- Build file: no target in no project
- CSSHTMLREM制作手机端网页(小练习)
- 解决“ValueError: Unknown resampling filter (107). Use Image.NEAREST (0), Image.LANCZOS (1), Image.BIL”
- docker 中 --privileged 参数
热门文章
- 【JavaScript】查漏补缺 —对象转换成字符串JSON.stringify()
- 盘式制动优于鼓式制动吗?
- 咸菜可以吃吗,对健康有害吗?
- 想要创业有没有过来人能够指导一下
- 营销任何产品都只解决2个功能
- 为什么很多人只提苹果手机比安卓手机流畅耐用,却不提苹果手机比安卓手机贵几倍?
- mysql交互式查询_客户机程序5―MYSQL交互式查询程序[图]_MySQL
- pycharm添加python_Pycharm 复制代码出现空格的解决方式
- 了解SQL Server数据库静态数据及其如何适合数据库生命周期管理
- 如何使用Entity Framework在Always Encrypted列上模拟通配符搜索