Pebble's Diary

プログラマーの作業メモ

swift

swift文字列走査

swiftで文字列の走査をする方法。 swiftは型に厳しいので、stringのsubscriptに指定する型はString.Indexである必要がある。 もっとも単純にやる場合、次のようになる。 var str = "Hello" var i:String.Index = str.startIndex // 0 var end:String.Index =…

swiftで使えるAtomic系API (OSX/iOS)

swiftで使えるAtomic系APIがあったので備忘録としてリストアップしておく。 OSX/iOSで確認した。 func OSAtomicAdd32(__theAmount: Int32, __theValue: UnsafeMutablePointer<Int32>) -> Int32 func OSAtomicAdd32Barrier(__theAmount: Int32, __theValue: UnsafeMu</int32>…

swiftで構造体またはクラスをArrayにする際に気をつけること(2)

class CPoint :Printable { var x:Int = 0 var y:Int = 0 init() {} var description:String { return "x[\(x)] y[\(y)]" } } struct SPoint :Printable { var x:Int = 0 var y:Int = 0 var description:String { return "x[\(x)] y[\(y)]" } } var v2:[SPoi…

swiftで構造体またはクラスをArrayにする際に気をつけること(1)

swiftでは構造体は値渡し、クラスは参照渡しと言われますが、実際に使ってみて失敗した方が理解が早いです。 以下のサンプルと実行結果を見てみます。 class CPoint :Printable { var x:Int = 0 var y:Int = 0 init() {} var description:String { return "x…

Swiftでビット演算判定

C言語でのビット演算後の判定処理と同じことをSwiftで書く場合、少し工夫がいるので、メモ。 int value1 = (1<<0); int value2 = (1<<0|1<<1); if( value1 & value2 ){ printf( "good!" ); } swiftではifの中身はBoolしか受け付けないのでこう書かなくてはい…

swiftで小数点値フォーマット (update swift3)

C言語での小数点値フォーマット指定をswiftで実現する方法を調べました。 C言語では小数点以下の幅を指定した場合、一つ下の桁が四捨五入されます。 C printf( "%.2f\n", 12.3456 ); // 12.35 printf( "%.2f\n", 12.0 ); // 12.00 swift let num = NSNumber(…

SwiftのEnumでクロージャを使う

スタンフォード大学 Paul Hegarty先生のDeveloping iOS 8 Apps with SwiftでSwiftを勉強していますが、難解なところがあったので、自分でソースを書いてみました。 import Cocoa class MyObject { enum Op { case Function2((Double, Double) -> Double) cas…