Swift:Minimizing Annotation with Type Inference

许多程序猿更喜欢比如Python和Javascript这样的动态语言,因为这些语言并不要求程序猿为每个变量声明和管理它们的类型.

在大多数动态类型的语言里,变量可以是任何类型,而类型声明是可选的或者根本不允许.

Objective-C采用了混合的处理方式:它需要类型声明,但是任何指向一个Objective-C类实例的变量(包括任何从NSObject派生出的类,但不能是所谓的原始类型,比如int,float等等)可以简单的声明为其类型为id,因此可以指向任何Objective-C实例类型.

甚至当使用一个跟严格的声明时,Objective-C编译器也不能对变量的类型做任何严格的保证.

时间: 2024-08-09 10:33:51

Swift:Minimizing Annotation with Type Inference的相关文章

Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的. 注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化. 1. 数组(arr

随手记Swift基础和Optional Type(问号?和感叹号!)

距离Apple推出Swift已经有几天了,网上也时不时出现"急招Swift程序员,要求有一天工作经验"的帖子. 看到Swift,除了苹果放的另外一门语言的链接(http://swift-lang.org/),还可能联想到Taylor Swift,或者铃木雨燕. 这几天网上关于Swift的话题和材料应该迅速膨胀,比如StackOverflow的相关标签,还有知乎上的一些相关讨论. 关于Swift的推出,我个人觉得对现有的使用Objective-C的iOS开发者不算是很大的冲击,毕竟写代码

你不知道的JAVA系列一 Type Inference

在正式开讲之前先容许我说下写这篇文章的故事背景.前几天我们的production下的一个tool突然莫名其妙的报错,那部分功能已经很久没有改动过了,按理说是不应该出现问题的,代码在做反射调用method的时候出现了ClassCastException.我先是以为可能是什么小问题就把任务分给我同事了,他分析下来告诉我不知道什么问题,莫名其妙的就突然抛异常了:那找不到问题我们就只能怪JAVA Compiler了  原来最近我们做了一次JDK的升级,从7升级到了8,起先以为是reflect的Metho

[TypeScript] Generic Functions, class, Type Inference and Generics

Generic Fucntion: For example we have a set of data and an function: interface HasName { name: string; } const heros: HasName[] = [ {name: 'Jno'}, {name: 'Miw'}, {name: 'Ggr'}, {name: 'Gew'}, {name: 'Wfe'} ]; function cloneArray(ary: any[]): any[] {

The Swift Programming Language (基础部分)

简介 Swift 是一门开发 iOS, OS X 和 watchOS 应用的新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的. Swift 包含了 C 和 Objective-C 上所有基础数据类型,Int表示整型值:Double和Float表示浮点型值:Bool是布尔型值:String是文本型数据.Swift 还提供了三个基本的集合类型,Array,Set和Dictionary,详见集合类型. 就像 C 语言一样,Swift

swift语法和java的比较

1. 定义常量和变量 a. Swift语法 常量: let MaxNumber = 10 变量: var name = 1 b. Java语法 常量: public final int MaxNumber= 10; 变量: public String name = "morden"; 这里要注意的是swift有类型标注(type annotation)这个语法:如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称.但是因为swift编译器可以进行类型安全判定

泊学Swift系列之Swift Up and Running——变量和常量

Swift Up and Running——变量和常量 泊学原文 泊学技法视频 当我们学习一门语言的时候,无论是说还是写,也无论是外语或者编程语言,我们都会用自己已经掌握的语言中的元素去理解新语言中对应的部分.学习Swift也一样,作为一种编程语言,它有着和Objective-C,JavaScript或C#等其它编程语言共通的概念和类似的表达方式.如果你或多或少了解过一些编程语言,学习Swift将会是一个非常轻松的过程. Playground Playground是Apple在2014年WWDC

iOS开发笔记 - 语言篇之Swift

?2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布"We have new programming language"(我们有了新的编程语言)的时候,全场响起了最热烈和持久的掌声,伴随着掌声到来的语言叫Swift.接下来Craig Federighi更是毫不掩饰的告诉大家,Swift将成为主宰iOS和Mac开发的新语言,甚至是整个软件行业中最举足轻重的语言. ??Swift正如它的名字那样迅速.敏捷,但这并不是它的全部.Swift是一个博采众长的

Swift基础语法(常量变量、数据类型、元组、可选、断言等)

Swift 是 iOS 和 OS X 应用开发的一门新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的. Swift 的类型是在 C 和 Objective-C 的基础上提出的,Int是整型:Double和Float是浮点型:Bool是布尔型:String是字符串.Swift 还有两个有用的集合类型,Array和Dictionary,请参考集合类型. 就像 C 语言一样,Swift 使用变量来进行存储并通过变量名来关联值.在 Sw