静的言語のデメリットが解決された
Swfit登場で動的言語はオワコンか?
帰ってきた動的言語 VS 静的言語(代表Swift)
■ このスレッドは過去ログ倉庫に格納されています
2014/06/04(水) 00:32:30.04ID:F6AvD4LE
2014/06/10(火) 01:59:10.01ID:p8HHtVx/
774 名前:デフォルトの名無しさん [sage] :2014/06/10(火) 00:52:23.29 ID:sFxDcnZ9
クラス(orメソッド)宣言に@objcを付ける(もしくはObjCのクラスを継承する)と
メソッド呼び出しはobjc_msgSendを使ったものになる
クラス宣言に@objcを付けなければ、ObjCと非互換になる代わりに
メソッド呼び出しはC++のvirtual相当(直接関数ポインタを取得してcall)になる
クラス宣言に@objcを付けず、かつメソッド宣言に@finalを付けると
メソッド呼び出しは完全に静的になる
よって、Swiftは完全な動的束縛、静的に型付けされた動的束縛、静的束縛の3つの形態で使えるようだ。
クラス(orメソッド)宣言に@objcを付ける(もしくはObjCのクラスを継承する)と
メソッド呼び出しはobjc_msgSendを使ったものになる
クラス宣言に@objcを付けなければ、ObjCと非互換になる代わりに
メソッド呼び出しはC++のvirtual相当(直接関数ポインタを取得してcall)になる
クラス宣言に@objcを付けず、かつメソッド宣言に@finalを付けると
メソッド呼び出しは完全に静的になる
よって、Swiftは完全な動的束縛、静的に型付けされた動的束縛、静的束縛の3つの形態で使えるようだ。
26デフォルトの名無しさん
2014/06/10(火) 02:28:13.77ID:qoouvLaS 型推論とジェネリクスがあるなら静的型言語のほうがいいな。
2014/06/10(火) 02:39:10.62ID:osqTzX66
2014/06/10(火) 06:17:18.98ID:wv+hvGP5
静的と動的が合体したみたいな言語ってありませんか(´・ω・`)?
2014/06/10(火) 07:06:23.59ID:p8HHtVx/
>>28 それがSwiftでは?
2014/06/10(火) 10:27:23.11ID:Asjcm40b
天麩羅Haskellとか、依存型(dependent type)だな。
2014/06/10(火) 16:42:07.04ID:p8HHtVx/
>>27 Swift のジェネリックを見ると、基本は動的型付で制約/束縛指定をすると型の種類に制限をかけて行くみたいだから、色んな形での使用が可能みたい。
Swiftのライブラリの多くは、ジェネリックで作ってるらしい。 配列や辞書なども。
http://ja.wikipedia.org/w/index.php?title=Swift_%28プログラミング言語%29#.E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AA.E3.83.83.E3.82.AF
Swiftのライブラリの多くは、ジェネリックで作ってるらしい。 配列や辞書なども。
http://ja.wikipedia.org/w/index.php?title=Swift_%28プログラミング言語%29#.E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AA.E3.83.83.E3.82.AF
2014/06/14(土) 09:07:17.65ID:gvIqw1Hb
Swiftの制作者 Chris Lattner は、WWDC14のキーノートでSwiftの説明をしたその人なのですが、
実は、今ではXcodeの標準コンパイラ基盤となっているLLVMを設計した人なのです!
実は、今ではXcodeの標準コンパイラ基盤となっているLLVMを設計した人なのです!
2014/06/14(土) 09:55:04.44ID:NSBhpKcG
LLVM凄いね。Linuxだけのものだと思っていたら、
XCodeも採用しちゃった。Appleにも認められたLLVMは凄い。
LLVMがなければAppleは今でもObjective-Cを使っていただろう。
というか今までObjective-Cしかなかったとかありえないな。
XCodeも採用しちゃった。Appleにも認められたLLVMは凄い。
LLVMがなければAppleは今でもObjective-Cを使っていただろう。
というか今までObjective-Cしかなかったとかありえないな。
2014/06/14(土) 10:18:14.30ID:gvIqw1Hb
>>33
LLVMのmain authorは、Appleの社員だが。
LLVMのmain authorは、Appleの社員だが。
2014/06/14(土) 10:41:46.94ID:NSBhpKcG
アップルが関係しだしたのは、LLVMの開発が始まったかかなり後のことです。
一人か数人かしらないけど、後から参加したくせに
LLVMはアップルが起源みたいなことを言わないようにw
一人か数人かしらないけど、後から参加したくせに
LLVMはアップルが起源みたいなことを言わないようにw
2014/06/14(土) 10:56:28.77ID:gvIqw1Hb
すまんかった。現在の、ね。
2014/06/14(土) 11:04:24.81ID:gvIqw1Hb
ちゅうか、
イリノイ大学でLLVM作ってたのがVikram AdveとChris Lattnerで、
2005年にChris LattnerがAppleに入社して今に至る、と。
The LLVM project started in 2000 at the University of Illinois at Urbana–Champaign,
under the direction of Vikram Adve and Chris Lattner.
イリノイ大学でLLVM作ってたのがVikram AdveとChris Lattnerで、
2005年にChris LattnerがAppleに入社して今に至る、と。
The LLVM project started in 2000 at the University of Illinois at Urbana–Champaign,
under the direction of Vikram Adve and Chris Lattner.
2014/06/15(日) 17:06:54.63ID:F7O8xQBW
>>33
VBとかな
VBとかな
39デフォルトの名無しさん
2014/06/26(木) 09:40:37.27ID:5mhML8Na ◎2chスレッド勢いランキングサイトリスト◎
★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi
※ 要タイトル検索
※ 2chブラウザ併用推奨
★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi
※ 要タイトル検索
※ 2chブラウザ併用推奨
2014/06/27(金) 00:28:28.91ID:8upcRNms
そういやLLVMスレが立った頃はclangなんて存在しなかったな。
LLVM-GCCしかなかった。
LLVM-GCCしかなかった。
2014/07/24(木) 22:46:38.40ID:3xYKvkhO
ClangはそもそもObjective-Cコンパイラを現代的に書き直す為に、一からAppleが開発した物。
CやC++も入ってるのはObjective-Cと混在可能だから。
Swiftもソースレベルで混在可能だからClangに組み込まれた。 一般解放は未定だが多分オープンソースになる。
これが意味する物は、Swiftは、C、C++、ObjCの全資産を利用可能だと言うこと。
CやC++も入ってるのはObjective-Cと混在可能だから。
Swiftもソースレベルで混在可能だからClangに組み込まれた。 一般解放は未定だが多分オープンソースになる。
これが意味する物は、Swiftは、C、C++、ObjCの全資産を利用可能だと言うこと。
2014/08/05(火) 11:23:59.81ID:YIevQOQe
全資産を利用可能と聞くと一見よさげだが
悪しき遺産に足を引っ張られて結局使いづらい中途半端なものに終わるってことじゃね
ブリッジ部分を工夫して上手く切り離せてればいいんだが
悪しき遺産に足を引っ張られて結局使いづらい中途半端なものに終わるってことじゃね
ブリッジ部分を工夫して上手く切り離せてればいいんだが
2014/08/05(火) 16:00:38.20ID:e8X0jHpI
>>42 ブリッジなんて何も感じさせないんだけど。
ObjCとかCのライブラリを使うからと言ってヘッダファイルが必要になるわけでもないし。
ObjCとかCのライブラリを使うからと言ってヘッダファイルが必要になるわけでもないし。
2014/09/02(火) 10:55:15.80ID:gs4puFO8
>>42 SwiftからLibcを使った例
puts("Hello from libc")
let fd = open("/tmp/scratch.txt", O_WRONLY|O_CREAT, 0o666)
if fd < 0 {
perror("could not open /tmp/scratch.txt")
} else {
let text = "Hello World"
write(fd, text, strlen(text))
close(fd)
}
SwiftからObjective-C の UIColorを使う例
let myTextField = UITextField(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: 40.0))
let color = UIColor(red: 0.5, green: 0.0, blue: 0.5, alpha: 1.0)
myTextField.textColor = UIColor.darkGrayColor()
myTextField.text = "Hello world"
puts("Hello from libc")
let fd = open("/tmp/scratch.txt", O_WRONLY|O_CREAT, 0o666)
if fd < 0 {
perror("could not open /tmp/scratch.txt")
} else {
let text = "Hello World"
write(fd, text, strlen(text))
close(fd)
}
SwiftからObjective-C の UIColorを使う例
let myTextField = UITextField(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: 40.0))
let color = UIColor(red: 0.5, green: 0.0, blue: 0.5, alpha: 1.0)
myTextField.textColor = UIColor.darkGrayColor()
myTextField.text = "Hello world"
45デフォルトの名無しさん
2016/01/27(水) 10:31:59.77ID:9T6d+yCe hoshu
2016/02/04(木) 12:43:56.64ID:M5WeNgYc
>>44
SwiftってCのAPI生で触れるんだよな。
一時期かなり凄いと思ったが、作りむようになるとSwiftの記法が面倒になるんだよな。
結局ロジックはCで書いて、Swiftからはラッパー関数呼び出すだけになったわ。
SwiftってCのAPI生で触れるんだよな。
一時期かなり凄いと思ったが、作りむようになるとSwiftの記法が面倒になるんだよな。
結局ロジックはCで書いて、Swiftからはラッパー関数呼び出すだけになったわ。
2016/02/04(木) 17:21:15.79ID:ob+62gtm
正解
2017/06/09(金) 13:08:21.92ID:Be6u/Qjm
内部のテンポラリ変数なんかは型は別になくてもそんな困らんのだけど
関数の引数宣言なんかは型があった方が読みやすいわな。
関数の引数宣言なんかは型があった方が読みやすいわな。
49デフォルトの名無しさん
2018/05/23(水) 22:16:04.28ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
2T9SK
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
2T9SK
50デフォルトの名無しさん
2018/07/04(水) 23:48:09.96ID:gFgZc5FG DOZ
2019/02/08(金) 13:05:10.84ID:ZGG3UIKF
>>24 iPhone用のPython pythonista はその Objective_Cの関数が使えるから同じこともできる。
>>48 Python も関数のパラメータには型宣言が入れられる。 ただ自動的にチェックはしてくれない。
#型宣言無しの書き方
def func0( arg1 , arg2=1 ) :
return arg1*arg2
#型宣言有りの書き方
def func( arg1 : str , arg2 : int = 1 ) -> str:
return arg1*arg2 if type(arg1) == str else "バカ"
print(func('Test'))
print(func('Test',3))
print(func(10,3))
print(func0(10,3))
結果-----
Test
TestTestTest
バカ
30
>>48 Python も関数のパラメータには型宣言が入れられる。 ただ自動的にチェックはしてくれない。
#型宣言無しの書き方
def func0( arg1 , arg2=1 ) :
return arg1*arg2
#型宣言有りの書き方
def func( arg1 : str , arg2 : int = 1 ) -> str:
return arg1*arg2 if type(arg1) == str else "バカ"
print(func('Test'))
print(func('Test',3))
print(func(10,3))
print(func0(10,3))
結果-----
Test
TestTestTest
バカ
30
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】Jリーグ、43億円の赤字予算を承認 ★2 [鉄チーズ烏★]
- 【給食無償化】国が全額負担 自維公3党、近く合意へ★2 [ぐれ★]
- 40代教員、1億8600万円分の暗号資産だまし取られる 「警察手帳のような物」見せられ−滋賀県草津市 [蚤の市★]
- 上野動物園の双子パンダ、1月末に中国に返還へ 国内でパンダ不在に ★4 [蚤の市★]
- 【ラブホ】小川晶前市長、出直し立候補意向 周囲に伝達 群馬・前橋市長選 [ぐれ★]
- なだぎ武、イベントチケットが売れず悲鳴「10枚しか売れておりません」 [muffin★]
- 天然真珠の価値って二束三文で下手すると廃棄されるくらい価値がないんだってさ
- ケンモメンの特技「否定する」「ケチをつける」「悪口を言う」「お客様気どりをする」👈こんなんでよく社会でやってけるな [856698234]
- 旅に出たい
- 維新・吉村はん「国民よ思い出せ! 悪夢の民主党時代を!!」 [592058334]
- 楽しく生きると決めたんだが
- 共産党っていま内部分裂してんの?
