[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 06/15 14:01 / Filesize : 227 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Swiftスレ



1 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 04:12:21.08 ID:rEEU5ykv]
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう
https://developer.apple.com/swift/

2 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 04:17:00.47 ID:u4jrgx59]
Apple Developer
https://developer.apple.com/swift/

iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11

3 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 04:34:50.18 ID:0Yv/wN/p]
Objective-Cのキモイ書き方から解放されるっていう意味では歓迎したい

4 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 04:38:13.14 ID:RuKqYDTE]
はえーよw

5 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 04:42:17.80 ID:FE8l7XVP]
javascriptみたいなやつか?

6 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 04:49:00.24 ID:nzrdKQgu]
発表してすぐにドキュメント公開とは、さすが
オープンソースベースのIDEすら未完成のどっかとは違うな

7 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 04:57:41.31 ID:WOckUK4g]
LLVMでScalaっぽいのつくりましたって感じか?
マカじゃないから羨ましい悔しい

8 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 05:25:48.47 ID:FE8l7XVP]
kindleで配布はよ
ていうかwebでドキュメント公開しないところがいやらしいな
マカー以外も興味ある人多いのに

9 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 05:38:35.52 ID:rEEU5ykv]
書籍の形にはなってないけどドキュメント

The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097

Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097

10 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 05:39:22.69 ID:siem544m]
やばい、ナウでヤングでいけてる、それで性能もいいというし。
これからiosとosxの開発賑わうのでは?
若者をapple自軍に呼び込む召喚魔法になりそう



11 名前:デフォルトの名無しさん [2014/06/03(火) 05:49:11.67 ID:QNehfQ3/]
開発環境は?

12 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 05:59:22.34 ID:rEEU5ykv]
>>11
今のところbeta版のXcode 6がSwift対応らしい
https://developer.apple.com/xcode/downloads/

13 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 06:10:21.67 ID:soMTJmL9]
Objective-C と見た目が違い過ぎて笑う。
でも、流石にObjective-Cよりは遅いんじゃないか?

14 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 06:13:05.29 ID:NLcqYubo]
はやすぎワラタw

15 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 06:31:52.93 ID:mG676Gbl]
TypeScriptに似てるね。

16 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 06:32:47.09 ID:rEEU5ykv]
>>13
WWDCではObjective-Cより速いってグラフ出してたけどどうなんだろうな
もともとLLVMを念頭に置いて設計されてるから有利なのかも?

17 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 06:46:58.26 ID:0v65KPbJ]
Microsoftをパクってきたのか。

18 名前:デフォルトの名無しさん [2014/06/03(火) 06:50:33.89 ID:Fqc6zuT2]
結局、なんの言語のパクリなのか、まとめといてくれ。

19 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 06:51:51.09 ID:9Ltabfc6]
早いよ。 マシンレベルでも最適化されるし言語仕様自体見ても高速に動きそう。

20 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 06:52:31.51 ID:9Ltabfc6]
>>18 Clangの発展形。



21 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 06:56:19.45 ID:9Ltabfc6]
新しいプログラミング言語 Swift
dev.classmethod.jp/smartphone/swift/

米アップル、iOSアプリの新開発言語にSwiftを導入
ggsoku.com/2014/06/ios-8-swift/
米アップルは2日(現地時間)、iOS 8に新開発言語「Swift」を導入すると発表した。

Swiftは非常に軽快に動くことが特徴であり、Objective-CとC言語の中間に位置するようなイメージであるという。
コード体系はC言語を踏襲。
CocoaやCocoa Touchに対応することはもちろん、LLVMコンパイラを利用してビルドされる。

LLVM
ja.wikipedia.org/wiki/LLVM
LLVM とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。

LLVM は、JavaとJava VMの関係のように、まず仮想機械をターゲットとした中間コード(ビットコード)を生成し、その仮想機械向けコードを特定のマシンの機械語に変換する。

playgrounds を使うとインタラクティブに実行できる。
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/Art/largeshot_2x.png

22 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 07:12:38.78 ID:iQXQSz/x]
Enumもあるし、Genericsもあるのか。ますますTypeScriptに近いな

Swiftのprotocolっていうのは、TypeScriptのアンビエント宣言のことかな?

23 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 07:16:40.40 ID:iQXQSz/x]
タイプセーフ言語らしい。

Type Safety and Type Inference

Swift is a type safe language. A type safe language encourages you to be clear about
the types of values your code can work with. If part of your code expects a
String, you can’t pass it an Int by mistake.

Because Swift is type safe, it performs type checks when compiling your code and
flags any mismatched types as errors. This enables you to catch and
fix errors as early as possible in the development process.

24 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:32:34.25 ID:tLJazyzK]
1レスでマスターできるSwift言語入門
他言語のよせあつめだから、マスターするにはこれだけで十分w
(まあざっとしか見てないから間違ってたらすまん)

タイプセーフ言語。全般的に型ある。型キャストもある。
Generics搭載、アトリビュートあり

var(変数)とlet(定数)。変数・引数の定義は「名前: 型」の順番
文字列リテラル = よくある文字列クラス。文字列の中で変数展開や関数実行可能
for、for in、while、do while、if、swtchがある。
ループ系はラベルが使えてbreak、continueできるタイプ
switchは、caseにそこそこ色んなモノが使えてFallthroughキーワードでフォールするタイプ

関数はfuncで定義。デフォルト引数と名前付き引数が使える。
可変引数は...、inoutキーワードで引数で戻り値を返せる。クロージャある。アロー演算子もある。

タイプセーフEnum。おなじみのclassとstruct。thisはself。
(たぶん)単一実装継承。インターフェース(protocols)継承は複数可能
overrideキーワード、プロパティ(set、getキーワード)あり
コンストラクタ=init、デストラクタ=deinit。
自動リファレンスカウンタ方式。Weak Referencesあり
extensionで既存クラス拡張可能

例外、try-catchは不明(なし?)

25 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:39:53.35 ID:SsmCsZ51]
>>20
clang は言語か?

26 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:44:53.58 ID:Tlzh3MoL]
どっかで見たような言語だな。

27 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:46:43.13 ID:va6vQ78Z]
米アップル、iOSアプリの新開発言語にSwiftを導入
ggsoku.com/2014/06/ios-8-swift/
米アップルは2日(現地時間)、iOS 8に新開発言語「Swift」を導入すると発表した。

Swiftは非常に軽快に動くことが特徴であり、Objective-CとC言語の中間に位置するようなイメージであるという。
コード体系はC言語を踏襲。
CocoaやCocoa Touchに対応することはもちろん、LLVMコンパイラを利用してビルドされる。

LLVM
ja.wikipedia.org/wiki/LLVM
LLVM とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。

LLVM は、JavaとJava VMの関係のように、まず仮想機械をターゲットとした中間コード(ビットコード)を生成し、その仮想機械向けコードを特定のマシンの機械語に変換する。

www.apple.com/apple-events/june-2014/

28 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:49:02.50 ID:WvSy6YGV]
>>24
例外無いの?
golangと同じかね

29 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:51:46.23 ID:L+zlmaIc]
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::

javascript ジェネレータはよ

30 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:55:32.79 ID:va6vQ78Z]
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/index.html

なんというか
一言で言うとダサい言語だな



31 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:56:46.37 ID:Tlzh3MoL]
>>28
ざっと見たけど見当たらなかった。
どこかに書いてあるのかねぇ。

32 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:57:48.29 ID:uZjFICqp]
これでObj-C食ったら皆得だな

33 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 08:58:42.76 ID:Tlzh3MoL]
Objective-Cはさすがに古臭すぎて
やりたくなかったが、これで消え去れば最高だね。
Swiftの方がJavaScriptに似てるからいいよ。

34 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:10:47.58 ID:BwOFmS9H]
NS遺伝子のジョブズ消えたから発表できたのか

35 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:30:10.40 ID:9Ltabfc6]
>>29 Javascript コンパイラは有るみたいだよ。
Emscripten is an LLVM to JavaScript compiler
https://github.com/kripken/emscripten/wiki

Swiftは次の様なコンパイル手順を取ってる。

Swift > Clang > LLVM byte code > マシン語
だからこんな感じになるのでは

Swift > Clang > LLVM byte code > Emscripten > Javascript

またLLVM中間語をわざわざコンパイルしなくてもそれ自体を実行できるJavascriptも存在しているようだから、そのままHTMLで使える。
LLVM.js - Badass JavaScript

Ruby, Python, Haskell, Java, D, PHP, Pure, Lua 等へもコンパイルできるらしい。
これは夢が広がるな。

36 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:35:53.62 ID:t1I4ETzW]
とりあえずつい最近Objective-Cの勉強始めた俺からするとめちゃくちゃ嬉しいwww
いやー早速rMBP15 rate 2013をXcode6とYosemiteにして遊んでるがめっちゃ簡単やん!TypeScriptやん!普段仕事はC#.NETやからめっさ馴染み深いシンタックスやん!!楽勝やんこれwww
ほんま如何にObjective-Cが難しかったかよくわかるわー、これでコーディングやなくてアプリの中身そのものにリソース注げるわー

37 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:40:34.97 ID:Y/pEIVnr]
今風のcって感じだな
大して目新しい機能はなさそうだけど、今さらobjcよりましと思う

38 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:45:10.46 ID:t1I4ETzW]
いやでもこれでXamarin必要なくなるwww
あのクソ高くてふざけた制限ばかりのサブスクリプションを契約しなくてよくなるwww
マジXamarinざまぁwww

39 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:46:10.84 ID:va6vQ78Z]
>>34
ジョブスなら歓迎するはず

40 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:50:18.20 ID:9Ltabfc6]
そもそもCocoaの遺伝子がLLVMに受け継がれそれが発展してSwiftが生まれたんだから正常進化形だな。



41 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:57:27.88 ID:RuKqYDTE]
誰が一番最初にSwiftインタプリタ実装するか勝負だ!

てかLLVMってことはemscriptenで簡単にJSにできたりするかな?
新たなaltJSの誕生である。

42 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 09:59:34.95 ID:RuKqYDTE]
>>38
C#が使えるってだけならXamarinいらんけど、
Xamarinの価値はAndroidやWindowsターゲットとも主にモデル等でコード共有出来るってとこじゃねえの?
俺使ったことないし知らんけど

43 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:00:18.19 ID:d3S2ffsw]
>>31 が言うように例外処理が書いてないなぁ
ゼロ割りは error だけど overflow operator 使えば 0 になるよ、とは書いてあるが
error になったらどうなるのかが書いてねぇ

44 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:03:39.83 ID:S1JFtVB8]
いまどきの新しめの言語機能を全部ぶち込んだような言語だな。
静的型の型推論、クラスベース、関数型の機能もある。クロージャもある。演算子オーバーロードもある。
そしてガベコレなし。GCは結局それほど良い物ではなかったと明らかになってきたな、最近は。
(いまだにヌルサクに動かないAndroid見れば分かる)
動的型に対する静的型の反撃、LLVMベースと
ある意味、この10年ほどの紆余曲折が全部込められてるw

システムレイヤからアプリケーションレイヤ、エンタープライズから3Dゲームまで幅広く対応できるんじゃね?
Appleオンリーのクローズドな言語ということを抜きにすれば神がかってるわw

とりあえずさー、JavaScriptとはかなり距離の遠い言語だぞw 共通項はC風構文ってくらいだ。
JavaScriptに似てるって言うやつのプロフ見るとほぼウェブ屋だから
やっぱウェブ屋は世界狭いんだなとか思ってるよ(´・ω・`)
もっとも、そういう人達も表向きJavaScriptに近い感覚で使えるというのはいいことだと思うね。

45 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:06:21.04 ID:d3S2ffsw]
ガベコレはまんまARCだろ

46 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:07:55.16 ID:9Ltabfc6]
>>41 行けると思うよ。 LLVMバイトコードは同じはずだから。

47 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:11:30.41 ID:9Ltabfc6]
>>46 まさかWindowsのJITで動いたりしてくれないよな。 あれもLLVMだから同じバイトコードを使ってるはず。

48 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:12:00.54 ID:L+zlmaIc]
>>41
もうあるだろ

49 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:13:41.37 ID:t1I4ETzW]
これIronSwiftとかゆってVSで新規プロジェクト作成からコーディングまでできたらうんこ漏らすわw
リモートでコンパイル・デプロイまでできたら最強やな、はよ

50 名前:デフォルトの名無しさん [2014/06/03(火) 10:26:42.14 ID:Fqc6zuT2]
言語仕様の内側だけ見ると、あまりにも個性のない言語だね。

反面、外側を見ると、あのAppleのベンダー独自言語ってとこと、LLVM向けに設計ってとこが特徴的ではある。



51 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:48:29.11 ID:4aJXakc5]
lisp屋だけど、引き続きMacでは仕事がないか。

52 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 10:50:09.75 ID:4aJXakc5]
>>44
こんなスレたってるぞ
TypeScript(MS) VS Swift(Apple)
peace.2ch.net/test/read.cgi/tech/1401758403/

1 デフォルトの名無しさん sage 2014/06/03(火) 10:20:03.13 ID:Tlzh3MoL
まあ、どちらもタイプセーフJavaScriptという
似たような言語なんだから仲良くしろや。

53 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 11:12:45.60 ID:JVBQ3X9G]
>>24
すげえ、もうだいたい書けそう
ちょっとした経験者ならすぐ作れそうだな
Web開発者を取り込みたい狙いもあるんかもしれん

54 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 11:13:03.13 ID:L8tGCPp+]
ベンダロックインされてなかったら、Script言語が軒並み死んでたな。
僕の考えた最強の言語を実体化させんなと。

55 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 11:26:50.98 ID:RuKqYDTE]
DartががっかりJavaもどきだったからな
期待している

56 名前:デフォルトの名無しさん [2014/06/03(火) 11:28:40.77 ID:u2cAAs6G]
プログラミング言語swift公式ページ
swift-lang.org/

57 名前:デフォルトの名無しさん [2014/06/03(火) 11:30:54.27 ID:u2cAAs6G]
swiftはiOSとMac OS X用のDSLである。
汎用言語ではないのでマカー以外は解散!

58 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 11:31:03.42 ID:UTo3AZ7I]
>>54
LLVM3.6で追加されるよ

59 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 11:31:55.13 ID:RuKqYDTE]
>>56
それ別のSwiftや

なんで名前被らせたんだろうな

60 名前:デフォルトの名無しさん [2014/06/03(火) 11:41:30.74 ID:ymd/m1MP]
>>46 ID:9Ltabfc6
>>47 ID:9Ltabfc6

自演失敗か



61 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 11:44:01.73 ID:92ySfIuy]
今更IntにするならIntegerにしろよと思った

62 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:00:46.02 ID:9AiAEfmm]
IntにしたのはInt32とかUInt16とかもあるからじゃないか

63 名前:デフォルトの名無しさん [2014/06/03(火) 12:10:44.59 ID:aTPhR8I0]
ARCもそだけど、GC(VM上でアプリが動く)というならWindowsPhoneやFireFoxOSはそんなに重くない。消費電力は知らん。

64 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:20:16.27 ID:UatVHvvj]
IntがIntegerじゃないのは、

JavaScriptに対して言われていた
「functionってなげーよwww」対策だろう。

長いって言うなら、funcって略すよ(Swift談)
Intergerも長いっていうんだろ? Intって略すよ。

たぶんこれ。

65 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:23:12.43 ID:dLpXwHsH]
TypeScriptでいいや

66 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:23:51.45 ID:92ySfIuy]
ああfuncって気付いてなかった
省略方針なのね

67 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:29:19.32 ID:XlUvQuDj]
Cの関数はそのまま呼べるの?

68 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:29:45.33 ID:u2cAAs6G]
functionだろうがfuncだろうが、関数を特別視すんなよ。
第一級関数なら変数と同じ扱いができるだろ。

69 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:30:37.08 ID:RuKqYDTE]
elsifじゃなくてよかったw

70 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:34:42.13 ID:UatVHvvj]
>>67
型が違うのだから呼べるわけがない。

>>68
> 第一級関数なら変数と同じ扱いができるだろ。

それは言語の発展と逆行した考え方だぞ。

命令もデータも区別がないというのがノイマン型コンピュータ。
コンピュータにとっては区別がなくていいが、
俺らは人間。人間にとってわかりやすいようすると
汎用的な概念から、どんどん特殊化する。

たとえばgoto一つあればできることが、
ループやbreakやcontinueや例外などに細かい概念に別れた。



71 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:36:05.68 ID:sk2oOubr]
例外処理はどうなってるんだ?

72 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:38:04.11 ID:sk2oOubr]
>>67
呼べる。

73 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:38:47.16 ID:6F7AkFO6]
初見で書いてあることが分かった気になれるところがいいね。
Objective-Cなんてさっぱりわからんかったから。

74 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:40:51.80 ID:RuKqYDTE]
Obj-Cから例外は使うなって方針だったから無くなるのはまぁ

75 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:42:17.52 ID:XlUvQuDj]
>>70 >>72
どっちだよw

76 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:44:34.65 ID:/HreOboq]
例外無いのなら嬉しいわ

77 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:45:44.32 ID:9AiAEfmm]
そのままでは呼べないが、Objective-Cのコードを介在すればC言語の関数を呼べる感じだな

78 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:50:30.70 ID:9Ltabfc6]
>>75 呼べるに決まってるだろ。 呼べなかったらOBJ-CとSwiftをどうやってマージして使うんだよ。

79 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 12:52:13.32 ID:UatVHvvj]
>>78
重要なのは「そのまま」かどうかだよ。

呼べるか呼べないかで言えば、JavaからC言語だって呼べるし
ラッパー作ればバッチファイルからだってC言語ライブラリ呼べるさw

80 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:01:40.44 ID:XlUvQuDj]
そりゃラッパーかませば呼べるのは分かるよ
swiftの関数内でそのまま例えばfreadとかできるのかが知りたいんだ

ランタイムは共通とか言ってた気がするから
ObjCで書いてコンパイルされたフレームワークで定義されたクラスやメソッドなんかは
構文が変わるだけで直接呼べるのだよね?



81 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:09:10.15 ID:UatVHvvj]
だからC言語の関数をそのまま実行するのは無理だって。

そもそもC言語の場合コンパイルしてしまえば、
バイナリから関数名も引数の順番も数もそういった情報はなくなってしまう。

それを補うのがC言語のヘッダファイルなわけで。

swiftがC言語のヘッダファイル(プリプロセッサ含む)を
解釈できるのでないかぎり、C言語の関数をそのまま実行するのは無理。

82 名前:デフォルトの名無しさん [2014/06/03(火) 13:17:40.99 ID:FnIPHf/f]
関数宣言を与えただけで呼び出せるのなら、それはそのまま呼び出せるのと違わん

83 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:18:54.28 ID:UatVHvvj]
関数宣言を与えても呼び出せないので、
SwiftはC言語の関数をそのまま呼べないという話。

84 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:19:20.45 ID:9AiAEfmm]
C言語のコードをコンパイルしただけでは関数名は無くならないだろ

85 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:22:35.28 ID:UatVHvvj]
関数名は残っていたな失敬失敬w

でも引数の型や数といった情報は消えてしまう。
呼びだそうにも何を渡せばいいかわからない。

86 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:24:31.40 ID:XlUvQuDj]
基本的にはObjCと違って全部Swift内で完結せよというスタイルで
Cで書かれたライブラリを使いたいならObjCでラッパークラスを作るか
素直に全部ObjCで書けということなのかな

あまりお世話になることはなさそうかな

87 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:24:52.63 ID:9AiAEfmm]
Swiftの処理系はC言語形式のヘッダファイルを解釈できるみたいだよ?
ただそれによって利用可能になるのはObjCの形式で宣言したオブジェクトの定義だけみたいだが

88 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:28:06.12 ID:XlUvQuDj]
>>87
それって
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html
のどの章あたりに書いてあります?

89 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:28:09.49 ID:x2ex+shd]
>>87
ソース持ってきたら話を聞いてやってもいい。

90 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:29:17.83 ID:sL9VpNby]
C言語のヘッダファイルって、
ヘッダファイル専用の特殊形式ってわけでもなく、
Cコンパイラそのまま実装していなければ、
解釈不可能なはずだけどねぇw



91 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:30:24.57 ID:9AiAEfmm]
Obj-CとSwiftのコードの混在はこの辺だ
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

92 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:30:54.21 ID:RuKqYDTE]
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html#//apple_ref/doc/uid/TP40014216-CH2-XID_0

93 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:32:25.88 ID:Vd9fiKAu]
「ObjCの形式で宣言したオブジェクト」って言ってる時点で、
それ普通のC言語のヘッダファイルじゃないからw

Objective-CはC言語じゃないんだよ。
C言語の範疇から外れたものしか扱えないって
言ってるようなもんじゃんかw

94 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:32:40.27 ID:XlUvQuDj]
>>91
なるほど、んじゃプロジェクトの特定のクラスだけObjCにするようなことは容易にできるわけだ

95 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:35:51.48 ID:2DJZsrYR]
ほうほう、紛らわしいことにC言語とは全く互換性がない
Objective-C用のヘッダファイルというものがあるわけか。

www.atmarkit.co.jp/ait/articles/1404/09/news029.html
>
> クラスの宣言
>
>  クラスを作成するには、このクラスがどんなクラスなのかを宣言する必要があります。
> クラスの宣言はヘッダーファイル(.h)に書きます。そして、
> クラスを宣言するには@interfaceと@endを使用して以下のように書きます。

>  クラスやクラスに定義されるメソッドの実装は実装ファイル(.m)に記述します。
> クラスを実装するには@implementationと@endを使用して以下のように書きます。
>
> @implementation クラス名
> @end
>  @implementationと@endの間にクラスを実装していきます。従って、Personクラスでは以下のように記述します。
>
> @implementation Person
> @end

> また、実装ファイルには対応するヘッダーファイルを#importで読み込む必要があります。
> 以下のようにして、Person.hをインポートするようにしましょう。
>
> #import "Person.h"
> @implementation Person
> @end

96 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:36:04.76 ID:RuKqYDTE]
Obj-CはCの仕様を完全に含んでるよ

97 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:36:46.70 ID:JVBQ3X9G]
>>71
throw try catchがなくて??ってなってる

98 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:37:22.18 ID:Nh2RM5Lo]
>>94
> なるほど、んじゃプロジェクトの特定のクラスだけObjCにするようなことは容易にできるわけだ

できない。

というかそもそも、C言語にクラスというものが存在しない。

99 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:37:49.46 ID:6F7AkFO6]
JNIみたいなもんじゃね。
ある程度の安全性を考えたら、直よりもJNIみたいな方がいいと思うが。

100 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 13:39:10.62 ID:Nh2RM5Lo]
>>96
> Obj-CはCの仕様を完全に含んでるよ

で、Swiftで扱えるのは、C+αのα部分だけなんだろう?
それC言語の部分は扱えませんとw








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<227KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef