Kotlin 6

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/06/22(土) 15:59:57.23ID:zj+KJbMh
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
Kotlin 5
https://mevius.5ch.net/test/read.cgi/tech/1544268581/
2020/01/22(水) 16:30:08.45ID:Ho7opIM1
最初は別言語で書かれるが、その後自身の言語で書き直すことはよくある
セルフホスティングと言ってGo,Rustなども達成している

成果物の動作環境で自身も動作可能になるので
Kotlin/JSがセルフホスティングなら
babel/standaloneのようにブラウザ上でコンパイルが可能になったり
Kotlin/NativeのビルドにJVMが不要になったりする

実用上はJVM需要が主だしGradleが便利なので変えないだろうけど
2020/01/22(水) 16:31:19.66ID:Ho7opIM1
>>614
初期コンパイラはJavaで書かれて新規部分は基本Kotlinで書かれてる
置き換えたい気はあるようだけどJavaのコードはかなり残ってる

以下から拡張子の混在が見て取れると思う
https://github.com/JetBrains/kotlin/tree/master/compiler/backend/src/org/jetbrains/kotlin/codegen
2020/01/22(水) 16:48:14.42ID:rj2HkyIb
>>618
KotlinのコンパイラがJavaで作られたとしても
Kotlinがコンパイラを作れない言語ということにはならないと思うんだが
622デフォルトの名無しさん
垢版 |
2020/01/22(水) 17:03:14.84ID:54HMiZ6v
美人のまんこと豚のまんことどっちが良いかって豚の方が名器なら豚を選べば良い
気にすんな
2020/01/22(水) 17:04:15.03ID:uoDMOHZt
>>621が童貞だとしても、
>>621が性的不能ということにはならない
つまりこういうことだ
2020/01/22(水) 21:59:06.37ID:xBq5xtIj
>>620
詳しくありがとうございます!
2020/01/23(木) 18:56:14.34ID:GW8kqb26
kotlin1.4の展望を読んだんだけど、
「kotlin/nativeのコンパイル速度は、まだしばらく改善できません」
って言ってるのかな。。楽しみにしてたのに
2020/01/23(木) 19:18:12.78ID:Zw7yYSY7
まだ使い物になってないのに速度もクソもあるか
627デフォルトの名無しさん
垢版 |
2020/01/23(木) 21:18:33.10ID:G/hRyFJo
>>621
ならないね。実証できてないだけで。
2020/01/25(土) 19:02:48.90ID:tu9lbSH2
いままでバックエンドにIL採用してなかったのは不仲が原因・・・?
2020/01/26(日) 18:55:55.74ID:+mqmWgOA
そろそろ新しい本、出ないかな
待ってる
2020/01/26(日) 20:04:28.42ID:dHmJ8YkC
サーバーサイドの分厚い本出てほしい
2020/01/26(日) 20:35:36.28ID:trXW8RYw
コトリンの薄い本出してほしい
2020/01/26(日) 21:42:21.85ID:GytwJKGV
本来の意味の同人誌だな
633デフォルトの名無しさん
垢版 |
2020/01/26(日) 23:29:22.09ID:k2+mT4PN
自分で作れば良いのではないか?
2020/01/27(月) 00:26:33.19ID:dOEN/Dlw
今日もnull安全だから…プロパティに代入して欲しいの
2020/01/27(月) 10:04:25.03ID:5yIKV7tf
近所の本屋ではkotlinの棚にflutterが侵食してきている
kotlin本は必要だー!出せー!
636デフォルトの名無しさん
垢版 |
2020/01/27(月) 13:13:48.97ID:MAYcFInA
みんなで薄い本を出しまくろう
2020/01/27(月) 13:18:35.57ID:ePx3bfA1
薄い紙の本?
誰が薄い髪やねん!
2020/01/27(月) 22:02:28.60ID:l6kTq6zA
      //
    / ./
    /  ./     パカ
   / ∩彡⌒ ミ 髪のはなし終わった?
   / .|(´・ω・`)_
  // |     ヽ/
  " ̄ ̄ ̄ ̄"∪
2020/01/28(火) 00:20:15.54ID:BrmWR/YB
通話中でもバックグランドで処理するアプリとか、スマートウォッチ向けアプリ作ってみたい
640デフォルトの名無しさん
垢版 |
2020/01/28(火) 04:30:56.90ID:ms/fb6kS
じゃあ厚い紙の本で
641デフォルトの名無しさん
垢版 |
2020/01/28(火) 04:32:09.25ID:ms/fb6kS
>>639
どうぞ。遠慮なく。思う存分作ってよいぞ。どんどん作ってくれたまへ。
2020/01/28(火) 08:26:16.34ID:BrmWR/YB
できぬのだ
だから本出してくれ
643デフォルトの名無しさん
垢版 |
2020/01/28(火) 12:56:22.85ID:Bdltl+Ea
大丈夫。お前ならできる。俺は信じてるぞ。
とりあえずネットで検索しろ。
2020/01/28(火) 16:04:32.98ID:ZibUblYk
よし、待ってろ!
645デフォルトの名無しさん
垢版 |
2020/01/29(水) 09:57:21.18ID:Ji+gdkxY
完成したらその事を本に書いて出せ。
Amazonの電子書籍なら簡単な審査だけで出せる。
2020/02/01(土) 16:27:53.15ID:t4FihBT6
やはりできぬ!
647デフォルトの名無しさん
垢版 |
2020/02/03(月) 02:56:28.79ID:gyzZZyLf
いやできる。絶対に完璧にできる。頑張れ。
2020/02/03(月) 16:12:29.25ID:AhEvcPzj
むーりー
649デフォルトの名無しさん
垢版 |
2020/02/03(月) 16:52:51.88ID:EEPHYlO9
ヤレばデキる
650デフォルトの名無しさん
垢版 |
2020/02/05(水) 17:46:33.75ID:9nK7Yle0
スマートキャストで、これは問題なくできる。

val x: Any = 0.3
if (x is Double) println(x + 0.2)

しかしこれはできなかった。

val x2: List<Any> = listOf(0.3)
if (x2[0] is Double) println(x2[0] + 0.2)

足し算する前に as Double でキャストすると問題なし。

if (x2[0] is Double) println(x2[0] as Double + 0.2)

なんで? val で List だから内容が変更されることはない筈で、スマートキャストできそうに見えるんだけど。
Listの中身まで推論してられっかボケってこと?
651デフォルトの名無しさん
垢版 |
2020/02/05(水) 17:49:43.62ID:9nK7Yle0
Listに色々なクラスのインスタンス入れて返すメソッドを思い付いたのだがKotlinはスマートキャスト使えるから楽に書けるかなと思ったんだよね。
で、試してみてわかったんだけど、これだとJavaと大差ないね。
2020/02/05(水) 17:54:45.88ID:xJPwpbdq
>>650
[0]は.get(0)のシンタックスシュガー
でgetが要素を変更しない保証がない
653デフォルトの名無しさん
垢版 |
2020/02/05(水) 19:35:44.69ID:gUkl9CZ9
covariantの問題だから、将来的にもそこは変わないと思う。
2020/02/05(水) 20:28:21.91ID:sFY5zr3G
.get()がthisを変更しないことを
関数定義時に保証する文法を追加すれば解決可能では?

val y = x[i]で一旦受ければいいから
JBの言語改善にかける意欲の低さを考えれば超期待薄
2020/02/06(木) 00:02:18.36ID:E0QPZagj
> Listに色々なクラスのインスタンス入れて返すメソッド

これのメリットがよく分からんけど List<Any> に対して get(i) + cast する拡張関数作ればいいんじゃね
2020/02/06(木) 01:30:37.85ID:hv8rQXh6
リストにいろいろと聞くとつい、生Listを構造体代わりにする昔ながらのクソコードを思い出す
あのアンチパターンに名前はないのだろうか
静的ならDestructuring Declarationsを使い動的ならSequenceを返してitをスマートキャストすればいいのでは
2020/02/06(木) 01:34:47.55ID:c8/ceEGP
>>650 >>654
メソッドを2回呼んで同じ値を返す保証は結構難しい
言語レベルでのメモ化や参照透過性、所有権システムなどが必要になる

フロー解析で出来たところでコンパイル可否がlistOfの実装に依存して
柔軟性もコンパイル速度も悪化するから
Kotlinディスカッションに投げても多分改悪判定される

valやletで十分だと思うけどな
2020/02/06(木) 01:42:08.64ID:c8/ceEGP
>>651
型チェック+処理を頻繁に書きたいのなら
こういうの用意しておくといいんじゃね

inline fun <reified T> Any?.letif(b:(T)->Unit){ if(this is T) this.let(b) }

fun main() {
val x2: List<Any> = listOf(0.3)
x2[0].letif<Double>{ println(it + 0.2) }
}
2020/02/06(木) 06:43:59.78ID:SCigAXfk
>>650
val x2: List<Any> = listOf(0.3)
val x3 = x2[0]
if (x3 is Double) println(x3 + 0.2)
これはスマートキャストいけた。

雑に考察すると、x2の右辺には別スレッドで
val x4: MutableList<Any> = mutableListOf(0.3)
と定義したx4を書くことも出来て、
ifの条件式が評価されてprintlnが実行されるまでに、
元のスレッドでx4[0] = "string"が実行されている可能性が微粒子レベルで存在するのかなと。
2020/02/06(木) 09:49:06.64ID:hv8rQXh6
data classなんかの読み取り専用プロパティへの参照なら同じ書き方でスマートキャストできる
そのプロパティを参照するだけのメソッドやカスタムgetterを経由したら不可
コンパイラ設計上、メソッドの副作用がないことを無制限に推論することは時間的制約の面で不可能で、どこかで線引きするしかない
リフレクションで変数を書き換えてるかもしれない
その合理的な線引きの範囲がval値への参照なんだと思う
661デフォルトの名無しさん
垢版 |
2020/02/06(木) 09:57:34.37ID:/RKPlkxl
>>659
あ、そーか。その可能性あるな。
Listの皮を被ったMutableListね。
2020/02/06(木) 19:48:08.86ID:RMCcx4bu
kotlinはc++みたいな玄人向けのクソ言語になろうとしてるのか?複雑すぎやろ。コルーチンでどうやってエラー伝えればいいんだ
https://qrunch.net/@kyoutoday/entries/64IYC8Ye81WyzA5L
2020/02/06(木) 22:01:06.64ID:cD2QUy+I
Eitherに一票
2020/02/07(金) 01:10:47.77ID:cvaigXbo
>>662
>coroutinesなどで実行している非同期なコードの例外をキャッチすることができません。
どういうこと?出来るだろ?

suspend fun f(): String { throw RuntimeException() }

fun main() {

try { runBlocking { f() } }
catch(e:RuntimeException){ println("catch") }

val d = GlobalScope.async { f() }

try { runBlocking { d.await() } }
catch(e:RuntimeException){ println("catch") }

}
2020/02/07(金) 03:04:38.78ID:nyDcvFOU
runBlockingって、名前の通りスレッドブロックするん?だったらさすがに実際そんな使わないだろ。launch,asyncなどのコルーチンビルダーで例外キャッチできないと
2020/02/07(金) 03:18:27.55ID:nyDcvFOU
>>662と似た記事https://qiita.com/kencharos/items/6fd0a9e92363b08c0340

c#のasync/awaitレベルで十分なのにやり過ぎkotlin...
2020/02/07(金) 06:43:46.22ID:cvaigXbo
>>665
基礎無しで応用を全部使おうとして混乱してるように見える
Kotlinに関しては道筋のドキュメント不足が原因かもしれない

> launch,asyncなどのコルーチンビルダーで例外キャッチできないと
C#のasyncやJavaScriptのPromiseでも変わらんよ

言語に限らず非同期処理の基礎知識として
コールバック、待機/通知、イベントループをまず学ぶべき
2020/02/07(金) 06:46:22.97ID:cvaigXbo
エラー処理については
まず、正常値/エラー値/多値/例外 はどれも
結果(処理への入力に対する出力)の一形態に過ぎないというところからスタート
2020/02/07(金) 08:06:13.01ID:lRgw/j43
>C#のasyncやJavaScriptのPromiseでも変わらんよ
他の言語とkotlinの違いはkotlinの場合は、suspend関数を呼ぶにはどっかにcoroutineが必要で、
coroutineの境界(lanuchなどで)例外は外側に伝わらないじゃん。
try {
 GlobalScope.launch { 例外発生}
} catch (ex: Exception) { キャッチできない }

で、どうすりゃいいの?ってことで悩んでて、ググったら上記の記事が出てきて、kotlinは他の方法でやるの??
って思ったけど今回とあんま関係なかったのかも。
とりあえず、JobにinvokeOnCompletionで完了ハンドラ登録できるから、
coroutineの外側ではJobを受けわたせばいいのかな・・
2020/02/07(金) 08:06:35.60ID:lRgw/j43
suspend fun fun2() {
 throw Exception("hoge")
}

suspend fun fun1() {
 fun2()
}

// コルーチンスコープが定義されてるところはJobで返す
fun test(): Job {
 return launch {
  fun1()
 }
}

// 大元
fun main() {
 val job = test()
 job.invokeOnComplete(t: Throwable?) { }
}

とまぁこんな感じになっちまうけどいいか・・
他の言語なら普通に例外を伝搬させられるが・・?
2020/02/07(金) 08:11:00.57ID:lRgw/j43
と、coroutine境界の内外でどうエラーの例外を伝えればいいか悩んでた次第です・・
2020/02/07(金) 08:54:24.91ID:cvaigXbo
>>669
>>664をC#で書くとこうなる → https://ideone.com/QwtGY4

try{ GlobalScope.launch {例外発生} } ...
これはスレッドで言えば
try{ Thread {例外発生}.start() } ...
と同じこと

>>668で書いたように戻り値も例外も同じで
待機やコールバックにより「受け取る」ことが必要

Kotlinでは runBlocking{}
C#では .Resultまたは.Wait() (どちらもスレッドをブロックする)
JavaScript(Promise)ではonRejectedコールバック
2020/02/07(金) 09:11:43.28ID:cvaigXbo
>>670
> 他の言語なら普通に例外を伝搬させられる
まずここに勘違いがある
Kotlinに限らず同期メソッドと非同期メソッド間で
待機やコールバック無しに伝搬することは無い

main自体を非同期メソッドにしているか
ブロックする呼び出しをしていることに気付いていないだけ
2020/02/07(金) 09:21:26.29ID:lRgw/j43
>>673
うん。だから、他の言語でmainメソッドを非同期メソッドにして、普通にtry-catchで
例外捕まえれるけど、kotlinだと無理だから他の方法あるのかな??って
話をしてたんですけど・・・
2020/02/07(金) 10:13:20.15ID:cvaigXbo
>>674
mainを非同期メソッドにして普通にtry-catch出来るけど

suspend fun fun2() { throw Exception("hoge") }
suspend fun fun1() { fun2() }
suspend fun main() {
try { fun1() }
catch(e:Exception){ println("catch") }
}
2020/02/07(金) 11:43:04.21ID:cvaigXbo
躓きの原因になってそうな点を書いてみる

・Kotlinのsuspendメソッド間は暗黙で同期して明示で非同期するが
 他言語のasyncメソッド間は暗黙で非同期して明示で同期する

・GlobalScope.launchには地雷がある(joinで例外が受け取れない)
 ※同スコープの launch は受け取れる
 GlobalScope.async/await に置き換えるのが良いと思う

・同スコープで非同期起動(async{})した場合の連鎖キャンセルで混乱している
 スコープがよく分からなければ GlobalScope.async を使っておけばいい

GlobalScope.launchの件は使わないから気付かなかった
基本的には GlobalScope.async/await, runBlocking を使えば良い
2020/02/09(日) 13:51:35.05ID:nzKzkqWJ
Kotlin 〜地図にない場所〜
2020/02/11(火) 05:13:51.51ID:LP4Ep5U4
>>677
脈絡がなさすぎてよくわからんが、これがやりたかったん?
https://ja.wikipedia.org/wiki/Will_%E3%80%9C%E5%9C%B0%E5%9B%B3%E3%81%AB%E3%81%AA%E3%81%84%E5%A0%B4%E6%89%80%E3%80%9C
水をさして悪いが地図にはあるんだなこれが。島の名前が由来だからね。
https://www.google.com/maps/place/%E3%82%B3%E3%83%88%E3%83%AA%E3%83%B3%E5%B3%B6/@60.0019041,29.649169,12z/data=!3m1!4b1!4m5!3m4!1s0x4696454b3c730d79:0x84277e6a3fbe0093!8m2!3d60.0125003!4d29.7336138
2020/02/11(火) 08:36:48.94ID:NSYf+CGe
KaMP Kitの紹介 (Kotlin Multiplatform用のツール)
https://blog.jetbrains.com/kotlin/2020/02/accelerate-your-kotlin-multiplatform-evaluation-with-kamp-kit/

試してないけど、マルチプラットフォームでアプリを作る際の
注意点やどのように書くかのガイドを目的としたツールのようだ

ツール自体ではないけど、ツールを作った会社の人によるKotlin/Nativeでの並行性についての話
https://www.youtube.com/watch?v=oxQ6e1VeH4M
2020/02/12(水) 23:27:40.61ID:KU1jPpQ4
Jupyterとか手広げすぎだろ...
https://kotlinlang.org/docs/reference/data-science-overview.html
2020/02/13(木) 00:51:57.99ID:29zvuXGO
>>680
ビッグデータはJavaが強い分野で、オワScalaの代替としてKotlinを推すのはわりと自然な戦略
まあJupyterを全面に押し出すのはちょっと的外れだが
2020/02/14(金) 22:21:03.52ID:QVXriQlN
リプ大量で草
お前らは当然valも変更される前提でコード書いてるよな?
https://twitter.com/kotlin/status/1227993505332682753
https://twitter.com/5chan_nel (5ch newer account)
2020/02/14(金) 22:57:32.18ID:ZYSFhOo2
>>682
バグかな。1.4リリースまでには抹殺されることを祈る。
valの値がミュータブルオブジェクトだったりするのはありえることだから、常に警戒はしている。
2020/02/14(金) 23:20:06.53ID:1RNC29HJ
>>682
open valじゃん
それが変化しないと考える奴はただの初心者だろ・・・

Kotlinでは@JvmFieldを付けない限り
privateでないアクセサがメソッド(getter/setter)になるのは基礎の範疇

 public class Read {
   public String getValue(){return "hello";}
 }

でgetValueがオーバーライドされて固定値じゃなくなることに騒いでるのと同じ
2020/02/14(金) 23:34:40.26ID:08nJ6zct
kotlinのvalは「valで定義されたものに=を使われていたら、コンパイル時にエラー出して止める」というご利益しかないよ
動作的にイミュータブルにする機能はないよ
2020/02/15(土) 00:55:36.25ID:/QpUFa9s
valの前にわざわざopenを書いてる以上、こういう拡張への意図があったということだよ
慌てなくても怖いならopenをむやみに書かなければそれでいい
継承がカプセル化を破壊するというのは昔Effective Javaで習ったろ
これはその端的な例で、だからこそKotlinはopenを明示しないと継承できない道を選んでる
2020/02/19(水) 22:25:28.94ID:CCUNbFwX
interface の val も実装を var にできるしな
2020/02/23(日) 23:35:56.01ID:gLwCsTk/
関数の引数をラムダ式にして、それをnullableにしたいんですがどう書いたらいいですか

fun fuck(abc: () -> Unit) {
}

みたいにして、呼び出す方は

fuck({
})

でも

fuck()

でも良いようにしたいんですが
2020/02/23(日) 23:39:09.88ID:gLwCsTk/
fun fuck((abc: () -> Unit)? = null) {
}

でできましたありがとうございました!

呼び出す方は

abc?.invoke()

としたら良いようですね
2020/02/24(月) 18:50:03.42ID:1BIvZ8XA
それなら、nullable外してデフォルト値{}がよくない?
691デフォルトの名無しさん
垢版 |
2020/02/25(火) 05:29:25.56ID:SMgXQhso
尼で検索したら Kotlin の新しい本が出てきた。
尼はURLがNGワードになってて書けないので以下にタイトルだけ並べておく。一番上の本だけが紙の本とKindle版両方ある。それ以外はKindle版のみ。

みんなのKotlin 現場で役立つ最新ノウハウ!

プログラマーにおくるKotlin流し読み入門: Androidアプリ開発の新言語をスピードマスター

解決!Androidアプリ開発のアレコレ
2020/02/27(木) 18:40:34.96ID:SgVrqVkS
>>691
去年に出たのを見ると、超初心者向けのが若干少ない気がするね
2020/02/29(土) 19:31:55.24ID:PZdDBNK2
Kotlin始めました。導入しましたって話聞く機会が減ってきた悲しい。
2020/02/29(土) 20:08:01.92ID:46OW7AmV
結局残るのは考えがしっかりした言語だ
小粋なのははやりすたりが激しい

MSはおかしい
2020/02/29(土) 20:38:11.60ID:JJ549bP/
KotlinてMSが作ったの?
2020/02/29(土) 22:40:18.84ID:ih/BSqRh
まあC#から拝借した機能の多さを考えるとMSが作ったと言えなくもない
2020/03/01(日) 11:08:43.11ID:70xHYE3h
kotlinで関数型を受け付けるメソッドに、特定のクラスのメソッドを渡したいのですがどうすればいいでしょうか??
fun registerHandler(handler: (Int, Int) -> Unit)
にhanlderと同じシグニチャを持つメソッド(例えばhoge)を持つクラス(例えばFoo)を作って
val a = Foo()
registerHandler(a.hoge)
みたいなことをやりたいのですがどうすればいいでしょうか?
要するにコードを再利用したいのです
2020/03/01(日) 12:50:48.59ID:yvqnHgQz
>>697
registerHandler(a::hoge)

Bound Function and Property References
https://kotlinlang.org/docs/reference/reflection.html#bound-function-and-property-references-since-11
2020/03/01(日) 14:23:26.97ID:70xHYE3h
>>698
ありがとうございます
2020/03/04(水) 05:03:33.71ID:HcJR2/8S
Kotlinで競プロやろうぜ

https://kotlinlang.org/docs/tutorials/competitive-programming.html
701デフォルトの名無しさん
垢版 |
2020/03/04(水) 23:04:30.12ID:G7V9iIFO
日本語に翻訳してくれ。
2020/03/04(水) 23:19:14.25ID:4yioSA0z
Kotlin 1.3.70 Released
品質改善がメイン
2020/03/06(金) 07:06:53.15ID:Z/vcpuAM
smart castってvarに効くっけ
704デフォルトの名無しさん
垢版 |
2020/03/06(金) 09:22:52.49ID:7w4EZP5c
>>703
効いたと思うが、他スレッドから変更される可能性があるならダメなのでは?
2020/03/06(金) 11:32:22.77ID:xJXeOVO9
普通に書いていれば別スレッドから書き換えられるvarにsmartcastはできない
2020/03/06(金) 11:38:02.14ID:VtIZxMve
変数にもローカル変数やらいろいろあるし
ローカルは効きそう、インスタンス変数は無理だろう
2020/03/11(水) 00:08:05.10ID:IcorLBpl
IntellijでKotlinでJavaコード呼び出した時
どんなchecked Exception投げるか簡単に知る方法教えてください。
2020/03/12(木) 13:57:27.22ID:T8doL2Lc
何を言ってんだ?
シグニチャーを見ろ
2020/03/13(金) 19:20:51.87ID:GcLjhKTc
初めて触る言語がコトリンなんだが異端か?
2020/03/13(金) 21:32:38.08ID:YqqN4LBM
(・_・)フツウ
2020/03/14(土) 05:19:54.50ID:qmE7NC86
むしろ異端だったとしてなんかあんの?
2020/03/14(土) 08:26:54.32ID:AOabs0cu
Kotlinって単純にJavaの上位互換と考えていいんですかね?
それとも特定の用途ならJavaの方が優れてることもある?
2020/03/14(土) 08:50:35.96ID:uPAEOS5i
>>712
・とにかく即動ける開発者を大人数集めないといけない場合
・約1MBのアプリサイズ増加が許容出来ない場合
ならJavaかな
2020/03/14(土) 11:17:54.82ID:cJqY8aA1
>>711
俺は特別!
2020/03/14(土) 15:02:17.48ID:SYJjC+91
特別な俺に酔いしれる、アートなプログラミングをするスレ民にふさわしいな
716デフォルトの名無しさん
垢版 |
2020/03/15(日) 01:00:14.34ID:UPbVmx1a
異端だな。
Androidアプリ作ってる場合はまあ普通だが。
2020/03/15(日) 13:40:42.45ID:JeE8EKc6
アンドロイドアプリ作る案件でしか触ったことないけどアンドロイドアプリ以外でもこの言語使うことってどれくらいあるんだ?
フリーでいろんな会社のいろんな案件に携わってきたけどアンドロイドアプリ以外でこの言語選択してるシステムに出会ったことがない
718デフォルトの名無しさん
垢版 |
2020/03/15(日) 13:43:15.79ID:G4jfON4Y
SwiftもRustもそんな感じ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況