当前位置:首页 » 编程软件 » swift脚本语言

swift脚本语言

发布时间: 2022-06-17 19:12:20

‘壹’ Swift 跟 javaScript 有什么相同和不同点

这都是嘛问题啊,你告诉我英语和德语有什么相同点和不同点?
相同点:都是编程语言
不同点:不一样的编程语言
作为同是编程语言,swift和javascript的变量都是类型推定,都是脚本语言。swift一般写ios或者mac os程序,现在也可以写服务端。javascript写客户端程序,现在通过nodejs也可以写服务端程序或者可执行程序。说回来,swift语法跟javascript的es6+有点像。

‘贰’ 如何评价 Swift 语言

Swift把几种主流语言的优势糅合得非常好,是我见过的最漂亮最现代化的语言。

“几种语言的优势”指的是:

Objective C的运行时动态支持,和基于编译期引用计数的内存管理模型,
Ruby灵活优雅的语法,
C++的严格编译期检查,C++11编译期类型推导,模版(之所以说模版template,而不是范型generic,是因为Swift的范型实现依靠编译器更多些,而不像Java/C#依赖于运行时支持),
Javascript和Ruby的closure。

糅合的结果就是,写Swift带给你的极致体验是无与伦比的。

你可以轻松地像Javascript一样用closure写函数式编程,实现callback, aync, 以及类似Promise的代码风格;而同时,你又无需忍受Javascript那样稀烂的类型系统(JS连函数参数的个数都不检查)。语法上,Swift closure几乎和Ruby一样漂亮;Javascript写closure很啰嗦,Objective C写block更难看(那个C函数指针风格的block声明我就没搞清楚过,有码农为此专门写了个blog: Fucking Blocks Syntax),C++写closure?... 眼花。

更舒服的是,Swift通过引入nullable的概念,支持在编译期对nil值进行检查。这一举解决了Objective C因为对nil值过于灵活和宽容导致的问题。而通过optional chaining, 原来的灵活性依然保留。

除此之外,Swift还支持与Objective C混编,完美支持iOS/Mac的SDK。所以在老项目中,过渡到Swift的成本是比较低的。个人推荐老项目转向Swift可以从testcase开始写。

题主说Swift是“基于脚本的编程语言”,这个说法不太妥当。Swift是一门非常严格的编译语言,它的编译期类型检查要比Objective C和Java都要严格,更别提那些真正的脚本语言了。当然,Swift可以在Xcode Playground里即时编辑即时显示结果——那是苹果的黑科技,并不意味着Swift是脚本语言。性能上,Swift不输Objective C。

初学者关心好不好学这个问题。在此也给出明确答案:不好学。Swift不是一门初学者入门语言。不要抱着写Swift可以快速上手的浮躁心态入门iOS开发。

‘叁’ 什么是swift在职场中有什么重要性

Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。
2015年12月4日,苹果公司宣布其Swift编程语言现在开放源代码。
Swift 对于初学者来说也很友好。它是第一个既满足工业标准又像脚本语言一样充满表现力和趣味的编程语言。它支持代码预览,这个革命性的特性可以允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果。
Swift 将现代编程语言的精华和苹果工程师文化的智慧结合了起来。编译器对性能进行了优化,编程语言对开发进行了优化,两者互不干扰,鱼与熊掌兼得。Swift 既可以用于开发"hello, world"这样的小程序,也可以用于开发一套完整的操作系统。所有的这些特性让 Swift 对于开发者和苹果来说都是一项值得的投资。

‘肆’ 苹果的编程语言 Swift 是用什么开发的

Swift是什么?
Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话:
Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility. Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible and more fun. Swift’s clean slate, backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to imagine how software development works. Swift is the first instrial-quality systems programming language that is as expressive and enjoyable as a scripting language.
简单的说:
Swift用来写iOS和OS X程序。(估计也不会支持其它屌丝系统)
Swift吸取了C和Objective-C的优点,且更加强大易用。
Swift可以使用现有的Cocoa和Cocoa Touch框架。
Swift兼具编译语言的高性能(Performance)和脚本语言的交互性(Interactive)。
Swift语言概览
基本概念
注:这一节的代码源自The Swift Programming Language中的A Swift Tour。
Hello, world
类似于脚本语言,下面的代码即是一个完整的Swift程序。
println("Hello, world")

变量与常量
Swift使用var声明变量,let声明常量
var myVariable = 42 myVariable = 50 let myConstant = 42

类型推导
Swift支持类型推导(Type Inference),所以上面的代码不需指定类型,如果需要指定类型:
let explicitDouble : Double = 70

Swift不支持隐式类型转换(Implicitly casting),所以下面的代码需要显式类型转换(Explicitly casting):
let label = "The width is " let width = 94 let width = label + String(width)

字符串格式化
Swift使用\(item)的形式进行字符串格式化:
let apples = 3 let oranges = 5 let appleSummary = "I have \(apples) apples." let appleSummary = "I have \(apples + oranges) pieces of fruit."

数组和字典
Swift使用[]操作符声明数组(array)和字典(dictionary):
var shoppingList = ["catfish", "water", "tulips", "blue paint"] shoppingList[1] = "bottle of water" var occupations = [ "Malcolm": "Captain", "Kaylee": "Mechanic", ] occupations["Jayne"] = "Public Relations"

一般使用初始化器(initializer)语法创建空数组和空字典:
let emptyArray = String[]() let emptyDictionary = Dictionary<String, Float>()

如果类型信息已知,则可以使用[]声明空数组,使用[:]声明空字典。
控制流
概览
Swift的条件语句包含if和switch,循环语句包含for-in、for、while和do-while,循环/判断条件不需要括号,但循环/判断体(body)必需括号:
let indivialScores = [75, 43, 103, 87, 12] var teamScore = 0 for score in indivialScores { if score > 50 { teamScore += 3 } else { teamScore += 1 } }

可空类型
结合if和let,可以方便的处理可空变量(nullable variable)。对于空值,需要在类型声明后添加?显式标明该类型可空。
var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var gretting = "Hello!" if let name = optionalName { gretting = "Hello, \(name)" }

灵活的switch
Swift中的switch支持各种各样的比较操作:
let vegetable = "red pepper" switch vegetable { case "celery": let vegetableComment = "Add some raisins and make ants on a log." case "cucumber", "watercress": let vegetableComment = "That would make a good tea sandwich." case let x where x.hasSuffix("pepper"): let vegetableComment = "Is it a spicy \(x)?" default: let vegetableComment = "Everything tastes good in soup." }

‘伍’ swift是什么意思

Swift是什么?
Swift是基于Cocoa和Cocoa Touch而专门设计的。Swift不仅可以用于基本的应用程序编写,比如各种社交网络App,同时还可以使用更先进的“Metal”3D游戏图形优化工作。由于它可以与Objective-C兼容使用,因此开发人员可以在开发过程中进行无缝切换。

【PP助手专题页】苹果WWDC2014大会专题报道请到PP助手25pp官网查看

Swift有什么用?
Swift摆脱了Objective C对定义指针的依赖。编译器像许多脚本语言一样可以推断变量类型。同时,它提供了类似于C++和Java一样的命名空间、泛型、操作符重载。新的语言的reference将依靠自动计数,取代Objective C的垃圾回收功能。

苹果的展示表明实现相同的算法Swift比Objective C的速度快大约1.3倍。Swift代码可以被实时编译,输入和输出显示在两个不同的面板编辑窗口。目的是让开发人员可以测试代码片段,而无需重新编译整个项目。

简而言之,全新Swift编程语言改变了Objective-C复杂的语法,并保留了Smalltalk的动态特性,使得应用开发变得更加简单易用。

‘陆’ 怎样使用Swift创建命令行脚本

一种很好地利用时间的方法是学会将Swift作为一种脚本语言来使用,可以用这种脚本语言来编写一些简单的命令行工具。

关于如何写Swift命令行脚本的序列包括两部分,这里先介绍第一部分。在这一部分,我们将一起来探究如何在命令行上执行Swift脚本,解析命令行参数以及怎么样导入依赖库等。

在该系列的第二部分中,我们将编写一个简单的Swift脚本来获得最新的比特币的价格,或者也可以求出每小时比特币的平均价格。这个脚本将使用Bitstamp API来获取需要的数据。在这两篇博文中,我着重使用Swift2.0来实现,所以为了运行我的这些小例子,你需要Xcode7以上版本,并且你的Xcode还要安装命令行工具哟。

Hello World
首先,我们来谈谈在创建Swift脚本时的一些选项。其实在命令行上面执行Swift脚本还是很简单的,可能你首先想到的是Python或者是Ruby等脚本的运行方式。下面是一个完整的Swift版Hello World脚本:利用下面的代码创建一个hello_world.swift文件,然后赋予其执行权限,就是建Hello World脚本所需的全部步聚。
#!/usr/bin/swiftprint("Hello World!")
那么怎么样在命令行中运行这段代码呢?很简单,你只要像运行其他的可运行的Bash或者ruby脚本一样,在命令行中输入下面命令即可:
$ ./hello_world.swift
命令行就会给你打印出:Hello World! 就是这么简单。
参数解析和Carthage框架
为了得到一些不错的命令行参数解析功能,并展示如何使用命令行脚本将其导入库,我将利用便利的OptionKit库。这个库可以用Carthage来搭建。在此之前,确保你已经安装了Carthage(使用Homebrew这个操作就像brew install carthage那么简单)。假如你已经安装了Carthage,那我们就可以直接运行以下命令给我们的脚本设置一个文件夹,然后初始化文件Cartfile,然后开始对Carthage进行编译:
mkdir swift_btc_scriptcd swift_btc_scriptecho github "nomothetis/OptionKit" ~> 1.0 > Cartfilecartage update
这时候,Carthage将OptionKit复制下来,并且作为一个框架保存到swift_btc_scripit目录下的Carthage/Build/Mac文件夹里面。大功告成!我们已经创建好一个编译库,能够导入我们所创建的Swift脚本。接下来我将用下面的代码新建一个options.swift文件来确保我们所有的排序都是正确的。当然我们也需要给定这个文件相应的执行权限,以便于我们能够直接在命令行上面对它进行调用。

运行参数
在命令行上面输入参数-s或者—say执行我们所创建的文件,将返回我们给它设定的相应结果,接着在命令行中输入-h或者—help,或者你干脆什么都不输入,命令行将返回一些帮助信息给我们。如下面这些就是我们脚本直接输出的信息:
$ ./btc.swift --not-a-commandInvalid option: --not-a-command$ ./options.swift -husage: btc.swift [-s|--say] [-h|--help]$ ./options.swift --say Well hello there pilgrim.Well hello there pilgrim.
下一步
到这一步,我们已经设置了一个小的命令行框架了,那么我们需要实现我们之前所说的获取比特币的价格,就是非常简单的事情咯。在下一章中,你将看到我们是如何使用命令行的Swift脚本来调用我们所熟知的iOS和MAC OS 的Foundation类库,帮助我们获取比特币的价格的

‘柒’ Swift语言已经出来一段时间了,大家觉得怎样

翻完iBooks书店上的The Swift Programming Language, 也了Xcode 6的beta版本来试验了一下。现在可以评价一下。如发现不对的地方,请在评论中指出,我斟酌后进行修正。
主要从技术的角度。而商业的角度,吸引开发者,共同维护苹果生态圈的繁荣等之类就不说了。
我不敢说swift学了有没有用,可不可以挣更多钱,但这门语言还是比较有意思的。swift骨子里面还是objc,但打扮过,比原来的模样漂亮。个人感觉,苹果还真的想用它取代objc呢。
------------------
swift 跟 objc 共用同一套的运行时环境
swift 的类型,可以桥接到 objc 的类型,反之亦然。如 string 对应原来objc的NSString, closures对应objc的block,等等。objc 积累下来的大量库,实现不用改写,swift 就直接可以使用。(最多加个声明文件)。看两个API的声明,对比一下
objc
void
dispatch_apply(size_t iterations, dispatch_queue_t queue,
void (^block)(size_t));

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

swift
func dispatch_apply(iterations: UInt, queue: dispatch_queue_t!, block: ((UInt) -> Void)!)

func touchesBegan(touches: NSSet!, withEvent event: UIEvent!)

我怀疑,swift中的接口文件,是利用原来objc,c中的接口文件自动程序生成的。

同一个工程,可以同时使用swift, objc, c, c++ 四种编译语言(额外嵌入的脚本语言另算)
原来的 iOS/Mac 工程,已经可以同时使用objc, c, C++三种语言。现在支持第四种。objc, c, c++三种语言的结合很容易, objc跟c本身就兼容,objc跟c++结合只要将文件名改成.mm。而swift跟其它语言的结合,需要另外的文件进行桥接,其实也挺方便的。
这里的桥接很容易,Apple自家的各种 C 库移植过来了。比如Core Image/Audio,直接包含
import CoreAudio
import CoreImage

就可以使用了。
现在swift完全可以跟objc并存,原来的工程不建议重写,也不用重写。顺其自然,慢慢让它进化就是了。

swift 写法看起来像脚本语言,但它是真正的编译语言
初学者,看它使用了
let a = 4
var b = "hello"

没有类型定义,就想当然的觉得它是脚本语言,解释执行,这是错误的。上面两行语句是用了类型推导,类似 C++ 里面的auto。swift跟objc的运行时环境一样,写的程序跑起来不会比objc慢。swift区分了struct和class, 分别使用传值跟传引用。适当地使用struct,应该会比objc要快一点。

swift 吸收了很多其它语言的语法,写起来比objc简洁得多,不过它骨子里面的概念,跟原来objc差不多
编程语言的语法重要,但是语法背后的概念更重要。比如面向对象,常用概念无非是,继承,多态,封装,信息隐藏等。继承又可能分成多重继承,接口继承,实现继承。或者还会有些嵌套类,嵌套函数等等。
当明白语法背后的概念,知道为什么需要有这些东西。之后从一门语言切换到另一门有着相同概念的语言,其实很容易。
而语法会影响表达,理论上每门语言都可以表达任何概念。不过当某种概念在某门语言中,很难表达出来,就会倾向于不这样使用它,这种概念在那门语言的社区就难以被人熟知。
感觉上,swift有着 obj-c, C++, Ruby的影子。
暂时,我自己最喜欢的3个特性有
tuple,终于可以返回多个数值了。一行交换两个值。C++里面的tie+tuple也可以实现类似功能,不过使用库,显得噪音太多。
closure,喜欢它的简写,还有在函数最后一参数,可以写在()外面。这些特性,用来写函数式风格的程序,会很好看。而原来objc的block, 还有c++的function, 就太啰嗦了。
switch,case里面的条件匹配。
这些语法,编译最后还是会映射成原来objc的运行模型。原来objc的概念,引用记数,ARC, 属性,协议,接口,初始化,扩展类,函数等等,继续有效。
我将swift看成是objc的一块大大的语法糖。
有个大块头的东西,是原来objc没有的,就是泛型。swift中 将那种操作写一次,就可以作用多个类型的语法叫做generics(泛型),而C++中称为template(模板),叫法不同,本质是同样的东西。
总的说来,swfit 涵盖了现在流行的编程方式,结构化,面向对象,泛型,函数式。

swift的新语法,可以很好地支持内部DSL
有一种编程风格,不太好归类。就是将程序拆分成,描述+解释。解释部分写一次,其它地方使用描述式的语句,而不是命令式的语句。
内部DSL,通常利用主语言的语法特性,创出一套写法,来写一些描述性的语句。这些语句组合起来,就像一门新语言似得。这个比较难理解。举个例子(从ruby那里借过来的),假如计算,几小时之后的秒数。C语言中,大概会写成
getHourSeconds(3)

而现在 swift中,只要定义了扩展
extension Int
{
var hours:Int
{
return self * 3600
}

var ago:Int
{
return -self
}
}

就可以写成
3.hours
3.hours.ago

分别是3小时后的秒数,3小时前的秒数。
同理,也可以写成
10.days
10.days.ago

这种写法,看起来跟原来的命令式写法完全不同。这些程序是描述性的。原来的objc, 做不到这点。 我估计swift以后会冒出大量这样风格的库。
这种风格,到底好不好,要看情况。比较方便定义内部DSL的语言, 我自己知道的有C++, Ruby, Lisp。现在多了Swift。

认为所有人都是0基础的,是错误的
有些人学得特别快,因为之前的基础好。语言的语法只是表面,表面的东西总是变动得比较快的。底下的东西重要得多,而看不见。水面一块冰,有些人是冰山露出一角,有些人是无根的浮冰。看起来差不多,其实差别十分之大。
我相信有些人,在两个小时之内就可以使用这门新语言。

提提那个Playground
之前苹果的员工,Bret Victor 演讲过个。提到这个这种可视化编程。当我们每一步操作,都得到实时地反馈,我们的做法会有很多不同,做出的东西也会不同。这个Playground,用来学习swift的特性很好用,不过我还不知道怎么才能跟工程结合起来使用,不作评论。

‘捌’ 做了两年iOS开发,有多少必要性学习swift语言

Swift 语言有很多先进的特性,不过实话实说(虽然我自己已经为Swift贡献了无数内容),iOS开发角度,OC的二进制发行版本要小巧很多,在Mac和Linux上开发还没有到达C++的成熟程度和兼容性,局限性还是比较大的;建议从C/C++/OC出身的程序员可以学习Swift,但是不要轻易放弃老本行,这是根本。

‘玖’ swift是属于脚本语言吗

不是脚本语言,虽然语法上给人产生了脚本语言的错觉。是编译语言,跟objective-c一样的编译语言,强类型语言,编译成二进制机器码执行。只不过引入了闭包、类型推导等等一些比较现代的语言机制。

‘拾’ swift是什么意思

Swift是一种计算机编程语言,这种计算机编程语言可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。

Swift是苹果公司在2014年WWDC的全新开发语言。从演示视频及随后在appstore上线的标准文档看来,语法内容混合了OC、JS、Python,语法简单,使用方便,并可与OC混合使用。

作为一项苹果独立发布的支持型开发语言,已经有了数个应用演示及合作开发公司的测试,相信将在未来得到更广泛的应用。某种意义上Swift作为苹果的新商业战略,将吸引更多的开发者入门,从而强大appstore和macstore本来就已经实力雄厚的应用数量基础。

(10)swift脚本语言扩展阅读

Swift 对于初学者来说也很友好。它是第一个既满足工业标准又像脚本语言一样充满表现力和趣味的编程语言。它支持代码预览,这个革命性的特性可以允许程序员在不编译和运行应用程序的前提下运行Swift代码并实时查看结果。

Swift将现代编程语言的精华和苹果工程师文化的智慧结合了起来。编译器对性能进行了优化,编程语言对开发进行了优化,两者互不干扰,鱼与熊掌兼得。

Swift 既可以用于开发“hello, world”这样的小程序,也可以用于开发一套完整的操作系统。所有的这些特性让 Swift对于开发者和苹果来说都是一项值得的投资。

热点内容
sql数据溢出 发布:2025-05-17 04:55:14 浏览:731
java金额 发布:2025-05-17 04:51:48 浏览:288
安卓怎么下应用 发布:2025-05-17 04:46:52 浏览:554
算法健壮性 发布:2025-05-17 04:41:10 浏览:856
jquery文件上传进度条 发布:2025-05-17 04:39:50 浏览:221
信息技术脚本模板 发布:2025-05-17 04:39:00 浏览:258
写sql跑 发布:2025-05-17 04:38:58 浏览:252
openharmony编译依赖 发布:2025-05-17 04:32:45 浏览:610
什么叫双十一配置 发布:2025-05-17 04:14:31 浏览:979
翼状胬肉使用氟尿嘧啶怎么配置 发布:2025-05-17 04:14:24 浏览:976