iOS: 学习笔记, Swift运算符定义
Swift操作符可以自行定义, 只需要加上简单的标志符即可.
@infix 中置运算. 如+,-,*,/运算
@prefix 前置运算. 如-
@postfix 后置运算. a++, a--
@assignment 赋值运算. +=, -=, --a, ++a
//
// main.swift
// SwiftBasic
//
// Created by yao_yu on 14-7-27.
// Copyright (c) 2014年 yao_yu. All rights reserved.
// import Foundation struct Vector2D{
var x = 0.0, y = 0.0
} @infix func +(a:Vector2D, b:Vector2D) -> Vector2D{
return Vector2D(x: a.x + b.x, y: a.y + b.y)
} @infix func -(a:Vector2D, b:Vector2D) -> Vector2D{
return a + -b
} @prefix func -(a: Vector2D) -> Vector2D{
return Vector2D(x: -a.x, y: -a.y)
} @assignment func += (inout a: Vector2D, b:Vector2D){
a = a + b
} @prefix @assignment func ++(inout a:Vector2D){
++a.x
++a.y
} @postfix func ++(a: Vector2D) -> Vector2D{
return a + Vector2D(x: , y: )
} @infix func ==(a:Vector2D, b:Vector2D) -> Bool{
return (a.x == b.x) && (a.y == b.y)
} @infix func !=(a:Vector2D, b:Vector2D) -> Bool{
return !(a == b)
} func Vector2D_Test(){
var a = Vector2D(x: , y: ), b = Vector2D(x: , y: )
var c = a + b
a += b
println("(\(c.x), \(c.y))")
println("(\(a.x), \(a.y))")
assert(a == c, "a == b失败")
a += b
assert(a != c, "a != b失败")
c = a++
println("(\(a.x), \(a.y))")
println("(\(c.x), \(c.y))")
} Vector2D_Test()
iOS: 学习笔记, Swift运算符定义的更多相关文章
- iOS: 学习笔记, Swift操作符定义
Swift操作符能够自行定义, 仅仅须要加上简单的标志符就可以. @infix 中置运算. 如+,-,*,/运算 @prefix 前置运算. 如- @postfix 后置运算. a++, a-- @a ...
- iOS: 学习笔记, Swift与Objective-C混用总结
Swift与Objective-C交互总结 在Swift中使用Objective-C(简单) 在创建OjbC文件时, XCode会提示创建XXX-Bridging-Header.h文件, 创建之 在创 ...
- iOS: 学习笔记, Swift与Objective-C混用简明教程(转载)
Swift与Objective-C混用简明教程 转载自:https://github.com/lifedim/SwiftCasts/tree/master/000_mix_swift_objc 我想很 ...
- iOS: 学习笔记, Swift名字空间
在Swift中, 名字空间是用class(extension)嵌套来实现的, 下面用一个简单例子来进行展示 // // main.swift // SwiftNameSpace // // Creat ...
- iOS: 学习笔记, Swift与C指针交互(译)
Swift与C指针交互 Objective-C和C API经常需要使用指针. 在设计上, Swift数据类型可以自然的与基于指针的Cocoa API一起工作, Swift自动处理几种常用的指针参数. ...
- iOS: 学习笔记, swift扩展
// // YYExtension.swift // // Created by yao_yu on 14-7-18. // Copyright (c) 2014年 yao_yu. All right ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
- iOS学习笔记总结整理
来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...
- iOS学习笔记之Category
iOS学习笔记之Category 写在前面 Category是类别(也称为类目或范畴),使用Category,程序员可以为任何已有的类添加方法.使用类别可以对框架提供的类(无法获取源码,不能直接修改) ...
随机推荐
- ios 码云的使用总结
今天将项目丢到码云上进行管理,遇到一些比较蛋疼的地方,做个记录,以后方便查询. 码云其实和gitHub差不多,只是在码云上做公司项目的时候设置为私有项目是免费的,貌似在gitHub上是要收费的.本文是 ...
- DocX组件读取与写入Word
本文转载:http://www.cnblogs.com/yanweidie/p/3861482.html 由于上周工作比较繁忙,所以这篇文章等了这么久才写(预告一下,下一个章节正式进入NVelocit ...
- Android Beam 详细实现步骤
前言 最近没怎么写东西了,主要是在了解Beam这个东东.这方面的教程真的非常有限,找了不少资料目前还没看到一篇能够让一个新手看一遍就知道实现一个Beam功能都需要那些步骤的.而且,都是用的官方的例子, ...
- Android源代码之Gallery专题研究(1)
前言 时光飞逝,从事Android系统开发已经两年了,总想写点什么来安慰自己.思考了非常久总是无法下笔,认为没什么好写的.如今最终决定写一些符合大多数人需求的东西,想必使用过Android手机的人们一 ...
- 【剑指Offer学习】【面试题14 :调整数组顺序使奇数位于偶数前面】
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序.使得全部奇数位于数组的前半部分.全部偶数位予数组的后半部分. 这个题目要求把奇数放在数组的前半部分, 偶数放在数组的后半部分,因此全部的奇 ...
- iOS AvPlayer AvAudioPlayer音频的后台播放问题
iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,Av ...
- xcode6下使用autolayout+sizeclass实践
历史车轮滚滚向前,将autolayout配合sizeclass做布局的方式推上了主流,虽然有点晚,但最终还是进行了一次完整的实践,特此记录一下: 因为网上已经有很多博客介绍了autolayout配合s ...
- Android的配置界面PreferenceActivity
我想大家对于android的系统配置界面应该不会陌生吧,即便陌生,那么下面的界面应该似曾相识吧,假若还是不认识,那么也没有关系,我们这一节主要就是介绍并讲解android 中系统配置界面的使用,相信大 ...
- HttpWebRequest结合HtmlAgilityPack实现网页form提交
年前一个项目,需要在某个系统实现系统自动操作. 系统页面使用form提交,页面参数较多,也参数设计一系列计算逻辑,改动一个值,其他值自动改变. 传统方法使用正则表达式匹配参数,构建post参数进行请求 ...
- Java 文件下载
public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的 ...