Skip to content

Instantly share code, notes, and snippets.

View SatoTakeshiX's full-sized avatar

佐藤剛士 SatoTakeshiX

View GitHub Profile
@SatoTakeshiX
SatoTakeshiX / CodePiece.swift
Created March 14, 2017 11:09
ジェネリクスも同じTなら型を合わせないといけない #read_swift #CodePiece
func someFunction<T>(_ argument1: T, _ argument2: T) {}
someFunction(1, 2) // OK
someFunction("abc", "def") // OK
// someFunction(1, "abc") // 型引数が一致しないためコンパイルエラー
@SatoTakeshiX
SatoTakeshiX / CodePiece.swift
Created March 14, 2017 11:37
スーパークラスで縛るジェネリクス #read_swift #CodePiece
class Person {
let name : String
init(name: String) {
self.name = name
}
}
class User : Person {
let id : Int
init(id : Int) {
@SatoTakeshiX
SatoTakeshiX / CodePiece.swift
Created April 10, 2017 16:17
今日@es_kumagai がおっしゃっていたコード。これですこし!が安全になります! #swift #read_swift #CodePiece
class SuperClass {
var value = 1
}
class SubClass: SuperClass {
fileprivate var _subValue: Int! = nil {//サンプルとしてfileprivateでしているけど本当はprivateのほうがいいかも
willSet {
guard newValue != nil else {
fatalError("nilだよ")
}
@SatoTakeshiX
SatoTakeshiX / CodePiece.swift
Created April 24, 2017 11:20
スコープ外で[weak object]をすると解放される。2回目のclosureのキャプチャは解放されている #swift #read_swift #CodePiece
class SomeClass {
let id: Int
init(id: Int) {
self.id = id
}
deinit {
print("remove")
}
}
@SatoTakeshiX
SatoTakeshiX / CodePiece.swift
Created May 24, 2017 11:08
catchには型情報がなくなっている。この例ではcatch SomeError.error1はcatchの後の型はError型の何かが来るとしか不明 #swift #read_swift #CodePiece
enum SomeError: Error {
case error1
case error2(reason: String)
}
do {
throw SomeError.error2(reason: "何かがおかしいようです")
} catch SomeError.error1 {
print("error1")
} catch SomeError.error2(let reason) {
Result<User, ~~Error>
let r1 = findUser(byID: 123)
let r2 = r1.flatMap{ localRart (fromEmail: $0.email)
//r2はResult<String, ~~Error)になる
@SatoTakeshiX
SatoTakeshiX / CodePiece.kt
Created June 14, 2017 11:06
kotlinのクラス宣言、プロパティを最初の()で並べるんだ。swiftのfunctionの引数みたい #CodePiece #read_kotlin
class Rational (val numerator: Int, val denominator : Int){
override fun toString(): String = "${numerator}/${denominator}"
}
@SatoTakeshiX
SatoTakeshiX / function.kt
Last active July 19, 2017 01:24
Kotlinスタートブック第五章 関数で話されていたコード
/**
* Created by satoutakeshi on 2017/07/17.
*/
fun main(args : Array<String>) {
val result = succ(31)
println(result)
println(square(5))
println(hello("sato"))
println(max(2, 4))
println(sum(arrayOf(1,2,3)))
@SatoTakeshiX
SatoTakeshiX / Routes.swift
Last active August 23, 2017 00:54
VaporでHTTPリクエストをなげる ref: http://qiita.com/SatoTakeshiX/items/b2239ee7bc6bb9ae583d
let config = try Config()
try config.setup()
let drop = try Droplet(config)
drop.get("qiitaSchema") { req in
guard let resultJson = try drop.client.get("http://qiita.com/api/v2/schema").json else {
throw Abort.serverError
}
return resultJson
@SatoTakeshiX
SatoTakeshiX / CodePiece.kt
Created September 16, 2017 06:29
会場から言っていたreturn forEachってこういうことかな? #CodePiece #iosdc #b
fun foo() {
ints.forEach {
if (it == 0) return@forEach
print(it)
}
}