Kotlin [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/02/27(土) 01:46:01.68ID:Ag8w7//2
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org
2017/10/02(月) 10:28:12.40ID:o9ncCo8n
JVMにはJAXBとかいう古き良きアーキテクチャがあってだな・・・
XMLだろうが、CSVだろうが、DBだろうが、(データ)クラスだろうが、どこに置くかは好みよね

オブジェクト指向で親クラスにユーティリティ共通メソッド置くか
関数型でユーティリティクラスに共通関数置くかも多分好みの範疇だろうよ

その上で、Kotlinだと何が流行りなの?(データ)クラス+関数型が流行り?
716707
垢版 |
2017/10/02(月) 23:30:03.61ID:eOIGvVq/
DB だと、B-tree, B+ tree
計算量は、O(log n)

全(線形)探索なら、O(n)

計算量は、>>707
に書いた通り

n = 100万なら、全探索で、100万回掛かるところが、
2分探索では、2^20 = 100万だから、20回

データを2分探索木で構築していないのなら、DB には勝てない
2017/10/02(月) 23:38:58.59ID:o0D0xmrR
O(1)でやってんだからDBに勝ってるだろ
2017/10/03(火) 00:27:03.06ID:G2lKIaaK
100個のインスタンスを、生成しただけだろ?

Map(key : value) になっていないだろ?
Map なら、O(1) だけど
2017/10/03(火) 01:18:34.37ID:aqsVlxub
>>716
二分探索木じゃなくても二分探索はできるだろ
>>710の親切なツッコミをスルーして無駄レスすんなよ
2017/10/03(火) 10:03:00.11ID:/m6PSf5w
>>714も無視しないほうがいいような気がする
jarファイル中のクラスファイル検索なんて1万でもさして問題にならん(さすがに作成は人間の仕事ではないが)
そして問題はそこではなかった
理解できなくなっちゃったんだろうけど
2017/10/04(水) 02:14:07.85ID:KVI0o5Io
Kotlinの話しろよ
2017/10/04(水) 08:09:18.36ID:kznoEkrV
JRE8では何ともなかったのにJRE9だとWARNING吐くようになったのは仕様?
Kotlinを最新の1.1.51にしても直らなかった。
723デフォルトの名無しさん
垢版 |
2017/10/04(水) 08:38:43.69ID:JPTWWYYO
なんて出てるの?
2017/10/04(水) 08:42:20.58ID:0hGgeKFz
Androidの場合は全参照メソッド数が65536超えるとコンパイル不可能になるという問題が一応あるぞ
つらいMultiDex使う羽目になるので「どうぐぜんぶにめそっどがはえてるおぶじぇくとしこうてきにただしいくらす」以外のアプローチも初期からご検討いただくと幸いだ
2017/10/04(水) 09:07:35.93ID:V3GzLm78
multidexって何が辛いの?
2017/10/04(水) 09:54:28.03ID:cxJCJ2DC
\コットリ〜ン/
727722
垢版 |
2017/10/04(水) 19:34:08.08ID:kznoEkrV
>>723
インタプリタにて↓
>>> println("hogehoge")
println("hogehoge")WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to co
nstructor java.lang.String(char[],boolean)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.
text.StringFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflect
ive access operations
WARNING: All illegal access operations will be denied in a future release
hogehoge

二度目以降は正常↓
>>> println("hogehoge")
println("hogehoge")hogehoge
2017/10/04(水) 19:35:36.92ID:sxpDUYrW
kotlinって自作例外を「アプリ内事象○○のせいで完了できなかったんで3つくらい上の自作catchで捕まえて処置よろしこ」程度のメッセージ的に気軽に使ってもいい?
外部提供APIとかじゃなく、自作のプログラム内での処理依頼のやり取り用
2017/10/04(水) 20:44:57.35ID:+JSlwxf3
String, char[] が異なる型なのかも

文字配列は、C言語の、\0 終端文字列かな?
String型は高機能な、C++のString型かな?
2017/10/04(水) 21:19:13.27ID:1osd033a
kotlinの技術書って、何で未だに日本向けのは一冊しか出てないの?
2017/10/04(水) 21:23:31.36ID:ekjB4cHk
最近のAndroidはmultidexしなくても動くし、minSdkVersionを低く指定したら勝手にmultidexでバイナリ作られるから考慮するの無駄

というのは置いておいて、Java9のModule(Project Jigsaw)でアクセスコントロールが強化されて不正なリフレクションに対して警告出してるんじゃね
将来的には警告じゃなくエラーになりそうな気がするから、Kotlinのバージョンアップで直るのを待つべ
2017/10/04(水) 22:29:29.12ID:vuQl5P59
長澤太郎以外は販売できないことになっている
733デフォルトの名無しさん
垢版 |
2017/10/05(木) 01:07:21.32ID:ioWgBjMx
>>730
まだあまり流行ってなくて出版社が乗り気じゃないのでは?
2017/10/05(木) 04:39:51.99ID:i/YPJQu8
今月2冊出るよ
2017/10/05(木) 09:20:35.38ID:qdkn4E5e
おおそうか
2017/10/05(木) 21:38:31.29ID:c5+kzESi
サーバーサイドKotlin明日発売やないか
2017/10/05(木) 23:00:14.40ID:RWFlOlgJ
流行っているかどうかは、掌田津耶乃が判断する。
このおっさんが本を出す分野は、流行っていると言える

このおっさん1人で、プログラミングの約半分の分野を、網羅しているw
2017/10/05(木) 23:19:11.04ID:c5+kzESi
そいつが出す本自体は糞だけどな
2017/10/05(木) 23:21:16.13ID:XUc7C4CE
別に流行り廃りでプログラムするわけじゃないしな
740デフォルトの名無しさん
垢版 |
2017/10/06(金) 01:37:01.01ID:x0C9073k
これか。10月6日発売。

Kotlin Webアプリケーション 新しいサーバサイドプログラミング
http://amzn.asia/aQkmPNJ
2017/10/06(金) 04:09:03.86ID:tqIbkLAn
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

Kotlin Webアプリケーション 新しいサーバサイドプログラミング、長澤 太郎、2017/10/6
2017/10/06(金) 05:25:11.21ID:dm5GZqP5
http://kotlin.hatenablog.jp/entry/2012/12/10/093018
このコードエラーになるんだけど、情報古くて今はラムダで引数に()使えなくて
戻り値の型を指定することができないという理解でいいんですかね?
2017/10/06(金) 05:39:21.03ID:tqIbkLAn
Try Kotlin のサイトで、そのソースコードを入力して、エラーメッセージを見れば?
2017/10/06(金) 09:08:25.48ID:NqBQU0ep
それは答を教えてくれるわけじゃないからなあ

>>742
関数リテラルの戻り値の指定はこうしてくだされ
val result: (Int, Int) -> Int = {a, b -> a * b }
2012アドベントカレンダーの結果はもう検索で出なくしたほうがいいと思うんだよねえ
2017/10/06(金) 10:14:22.41ID:dm5GZqP5
>>744
なるほど。ということは即時関数だと
val result: String = {a: Int, b: Int -> a.toString() + b.toString()}(3, 4)
みたいな感じにすればいいのね
2017/10/06(金) 11:25:26.06ID:oni6PLk4
val old = aaa.value
aaa.doValueMayChange()
if (old != aaa.value) aaaActionIsSuccess()
これなんかステキな感じに書けたりしませんかね
実際には長い処理してるだけのdoValueMayChange()の戻り値をこのためだけに真偽値にしてチェックするのってなんかキモくないですかね
if ( aaa.doValueMayChangeAndReturnTrueIfInnerTargetValueIsChanged() ) aaaActionSuccess()
2017/10/06(金) 17:16:40.52ID:X4PDhaWR
Spek使ってる人いる?
http://spekframework.org/docs/latest/#_gradle
これの通りにbuild.gradleに書いてる気がするんだがNoMEthodErrorで動かん
10 06, 2017 5:09:49 午後 org.junit.platform.launcher.core.DefaultLauncher handleThrowable
警告: TestEngine with ID 'spek' failed to discover tests
java.lang.NoSuchMethodError: org.junit.platform.engine.support.descriptor.ClassSource.from(Ljava/lang/Class;)Lorg/junit/platform/engine/support/descriptor/ClassSource;
at org.jetbrains.spek.engine.SpekTestEngine.resolveSpec(SpekTestEngine.kt:114)
...
2017/10/06(金) 19:04:09.88ID:X4PDhaWR
>>747
動いた。最後のほうの独立したdependenciesに追加
dependencies {
testCompile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.0.1'
}
junit-platform-runnerのバージョンは
https://mvnrepository.com/artifact/org.junit.platform/junit-platform-runner
にアクセスして最新ぽいバージョンのページ押してGradleタブ表示
書かなくても動いてる人はどっかで設定してるんだろうな
2017/10/06(金) 21:33:44.02ID:tqIbkLAn
プログラミング GROOVY、2011

Gradle 徹底入門、2014
Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応、掌田津耶乃、2017

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集、2012
2017/10/06(金) 22:27:21.32ID:tSMXLmVc
>>748
同じ苦労したことある。ドキュメントに書いてよ…。
2017/10/07(土) 05:51:08.18ID:dZntJrcK
>>746
aaaに押し込みなさい
2017/10/07(土) 14:33:30.45ID:tYMANlqN
SPekはBDDだし難しいよね
作ってるぶんにはメソッドの引数と戻り値が間違いなく動きます下手に中身変えたらREDですテストのほうがいいんだけどなー
2017/10/07(土) 14:36:59.78ID:lxJ0Yf9D
kotlinはJavaわかんなくても他言語やってたらイケル?
2017/10/07(土) 14:53:56.94ID:tYMANlqN
>>753
言語仕様の理解においてはJavaの経験は不要

ただし事例のWeb検索に関して
「Javaでこう書いてるってことはKotlinだとこう書くんだろうな」
「欲しいJavaの処理はだいたいこのへんだろうからここをコピペしてIDEで自動変換しよう」
というようなことができる程度の「Javaプログラムを読める力」が実際には必要
でもまあネットでJava入門を3日かけて最後まで読んで身につく程度があれば充分なのでそれこそ他言語経験があれば問題はないね
2017/10/07(土) 14:59:26.09ID:lxJ0Yf9D
>>754
ありがとうございます
kotlinがandroidの開発言語としてサポートされることになったので試してみたいなーと思ってたんでアプリ作ってみます
2017/10/07(土) 18:31:13.36ID:b4KK/o19
javaは1日でマスターできるので実質java未経験でも問題ないよ
2017/10/07(土) 19:18:53.56ID:rBYfi2xH
変数に入れた文字列でメソッドやプロパティを呼ぶことはできますか
val mes = "toUpperCase"
someString.callMethod(mes, null)
これでsomeString.toUpperCase()のかわりになるみたいなやつです
2017/10/07(土) 19:29:23.45ID:+RQU5E5j
ことぅりんだからなお前ら
ことりんとかいってたら数す
2017/10/07(土) 19:33:19.97ID:+RQU5E5j
それにしてもAppleがObjective-CにSwiftを追加したと思ったらGoogleがJavaにKotlinを追加してどいつもこいつもまったく...
2017/10/07(土) 19:41:49.21ID:XbHkmFTG
ことりんかわいい
761デフォルトの名無しさん
垢版 |
2017/10/07(土) 22:16:30.42ID:f9dDdlSq
ことりん(*´ェ`*)ポッ
2017/10/07(土) 22:18:46.44ID:iveAgMmn
人間だったら絶対美少女
2017/10/07(土) 22:55:16.08ID:LDd+/z40
ちょまどが漫画書いてくれないかなあ
2017/10/07(土) 23:13:31.53ID:X09Q1vcV
ちょまど(笑)
2017/10/07(土) 23:16:52.81ID:+RQU5E5j
お前ら...
https://www.hi-jax.com/namiaki/wp-content/uploads/2016/05/81C582BB-243A-4636-B3E4-DFD58ED4D17C.jpg
766デフォルトの名無しさん
垢版 |
2017/10/07(土) 23:38:16.22ID:f9dDdlSq
>>757
君の言いたいことがよくわからない。
2017/10/07(土) 23:51:42.16ID:2fKU1//d
何言語からやってきたかは知らんが動的系のevalがほしんだろ
Reflectionするしかないかな
2017/10/08(日) 01:04:04.02ID:bhcsmcAx
あざとい名前つけやがって
2017/10/08(日) 01:14:02.14ID:93IJP3PA
>>757
KFunctionのcall

val kclass = YourClass::class
val function = kclass.functions.find { it.name == "method_name" }
val instance = YourClass()
function?.call(instance, args)
2017/10/08(日) 01:22:31.02ID:93IJP3PA
>>767
Objective-Cだと結構普通に使うんよ
2017/10/08(日) 01:57:15.44ID:32PQUixn
Rubyでもメソッドのオブジェクト化を稀に使う

irb> "a=b=c".split("=")
=> ["a", "b", "c"]
irb> "a=b=c".method("split").call("=")
=> ["a", "b", "c"]
irb> "a=b=c".send("split", "=")
=> ["a", "b", "c"]
772デフォルトの名無しさん
垢版 |
2017/10/08(日) 02:41:05.63ID:c+/m9riq
あ、ようやっと何言ってるかわかったw
2017/10/08(日) 21:54:57.44ID:32PQUixn
IntelliJとSpekでSpecファイルひとつのテストってできないのかな
なんかできそうだけどいまいちよくわからんエラーが
これってそもそもできるもんなの? 俺がなんか悪いだけ?
2017/10/09(月) 19:59:00.68ID:3clxx/P9
リストを先頭からN個に分割というのを一発でできたりしない?
["a","b","c","d","e"] を2つずつ分割して [["a","b"], ["c","d"] ,["e"]] にしたい
775デフォルトの名無しさん
垢版 |
2017/10/09(月) 20:53:05.90ID:sCOU7I7y
>>740
その本さっき紀伊国屋で買った
2017/10/09(月) 21:17:44.65ID:bvkIQjV4
その本もさ、Kotlin本の選択肢がないから仕方なく買うってレベルの本だよな
あの初心者向けの無駄にポップなレイアウト、なんとかなんねえのかな
内容の割に無駄に重いし分厚いし、技術書なんて無地の紙でいいんだよ
2017/10/09(月) 21:55:29.10ID:4WiIHmfQ
>>774
既存の関数一つで、ということなら知らないけど
関数追加して良いのなら
http://rextester.com/JSYB15250
2017/10/09(月) 22:00:53.70ID:4WiIHmfQ
Try Kotlinだとコード共有にアカウントが必要なのでKotlin対応の別のを探した
長めの実行可能なコード貼るのに便利だと思う

アカウント無しでsave出来るオンラインコンパイラ
http://rextester.com/l/kotlin_online_compiler
2017/10/09(月) 22:34:41.54ID:c41RoAYB
言語は道具であってそれを使って何を作るのかが重要なわけだがKotlinによって何か革命が起きる見込みでもあるのか?
それともモダンな何かをいじってる自分が好きなだけ?
780デフォルトの名無しさん
垢版 |
2017/10/09(月) 23:58:04.80ID:tFlwnlNI
>>779
同じことやるのでもJavaより記述が楽そうな感じがするからだ。
更にこれまでのJavaの資産を使えるのが良い。
2017/10/10(火) 00:00:43.01ID:jM5sd94/
どんどん高級度が増して行ってそのうち人間はなぜソフトウェアがCPU上で動いているのかその仕組みを知る人がいなくなるのですね
そしてAIと対峙しなければならなくなったとき誰も対応できなくなる
そういう未来が待っているのでしょう
782デフォルトの名無しさん
垢版 |
2017/10/10(火) 04:02:27.77ID:Q5yhaeDv
>>776
ま、今後に期待だな。

一応 Google が Android 用として採用したんだから入門書は他にも出てくると思う。
ネットの情報も増え続けるだろう。
2017/10/10(火) 10:24:21.67ID:8V61cfLq
いままでひらがなだけのぶんしょうだったのがかんじがつかえるようになったというかんじだ
そりゃ最終的な音としては漢字があっても無くても変わらないかもしれないが、漢字を理解していれば読みやすく書きやすい
長文を書きやすくもなるだろうし、そこから生まれるものもあろう
個人的にはスクリプト言語のような立ち位置だと思っている
2017/10/10(火) 21:49:29.43ID:VPwnJAPN
今月末に出るKotlin in actionの方は上級者向けのような気がする
2017/10/10(火) 22:21:41.00ID:FWHsF53j
>>784
なんだ、日本語訳でるのか。頑張って洋書の方読んでるけど、理論だてて書いてあるのでわかりやすい。ところどころJavaとの比較があり、Javaの知識がないとちょっと苦しいとこあるかも。あとTry Kotlinでサンプルもあるよね。
2017/10/10(火) 23:01:05.11ID:Z3ZusD4X
in action は上級じゃないよ
プログラミング初心者向けじゃないけど
最初の1冊に選んでいい本
2017/10/10(火) 23:25:19.52ID:VPwnJAPN
日本語の技術書とかネットの情報でも日本語のものだと実務に使えるレベルに達しなくなってきてるよね
日本はIT後進国になってしまったんだと常々感じる
2017/10/10(火) 23:37:43.52ID:ZTVh7Eud
>>787
テクノロジーの移り変わりが早すぎて、一次リソースを参考にした方が効率的だし、わざわざ日本語に訳す必要もないから
2017/10/10(火) 23:38:33.00ID:sNdI8sqC
>>787
先進国だった時なんてあったか?
790デフォルトの名無しさん
垢版 |
2017/10/10(火) 23:42:30.50ID:gasOXxRr
一昔前はtronとかあったやん
今の日本はなにもない
2017/10/11(水) 00:08:24.55ID:YuycjJaM
最速だからいいということばかりでもない
周回遅れでも構わない情報のほうが世の中には多い
Kotlinスタートブックは1年以上前の刊行だけど使えないゴミだと言う人はまともな人にはおるまい
2017/10/11(水) 00:09:08.60ID:T++UmApy
ハードはともかく
ソフトは先進国だった事はない
793デフォルトの名無しさん
垢版 |
2017/10/11(水) 00:18:15.85ID:EN0HNRmd
これからなればいい
2017/10/11(水) 00:23:02.14ID:JdWo4X1f
Androidの技術書見ても現在主流の
RxJava, databinding, MVVM, flux, redux辺りの解説をしている本が全然ない
Androidだからまだネットで日本語の情報多いけど、
iOSになると本当に英語の情報しかなくなってくる
本当に駄目な国になってきている
ニュージーランド辺りに脱出した方がいいんじゃないかと思ってくるレベル
あっちはプログラマーの年収1000万らしいし
2017/10/11(水) 00:30:16.27ID:LhuJ4eZA
>>794
英語の情報があればいいやろ
796デフォルトの名無しさん
垢版 |
2017/10/11(水) 00:31:11.36ID:JfiRQ2Rl
むしろ英語を使うようになったからでは
日本語の書籍は高いし遅いし
2017/10/11(水) 00:31:53.22ID:V+6zovsu
>>794
お前と違って、英語の情報だけで充分なエンジニアが増えているという見方もできる
798デフォルトの名無しさん
垢版 |
2017/10/11(水) 00:33:36.19ID:EN0HNRmd
そしてみんなが苦もなく英語が読めるようになった頃、完璧な自動翻訳が完成する。
2017/10/11(水) 01:16:39.94ID:OvZKAieI
>>796
msのxamarin本なんか、原本はePubなら無料だが、日本語訳したとたんに6000円になるぜ!
2017/10/11(水) 01:19:17.66ID:YuycjJaM
>>799
安心しろ
日本の技術書を英訳してもだいたい1冊40ドルくらいにはなる
固定化されて訂正できない翻訳には人件費がかかるのだ
2017/10/11(水) 14:21:15.86ID:WJBR6sLF
英語、ちゃんと理解できるようにならんと、これからはだめなんだろうなぁ
なんとなくでしか読めんし、結局分からん事は日本語で探して解決するから、英語だけで完結できん
一年かけて英語習得するか!
2017/10/11(水) 14:48:59.07ID:YuycjJaM
高卒くらいの英語力は保持してるつもりなのにネットの記事がぜんぜん読めんという場合
・スラングがめっちゃ入ってる
・ネット文法が入ってて正規寄りではないので読み取れない
・専門用語が専門的すぎる
のだいたいどれかで、プログラミングの記事は最後の比率が大きい
これは英語本体をどんだけ勉強しても専門用語の日本での意味や技術的意味がわかるわけではないので役に立たない
パブリックメソッドを行政手法と訳してたら絶対わからんわけでな
2017/10/11(水) 16:03:19.52ID:hhJP1zLS
プログラマで英語弱い人はTry Kotlinのサンプルをちょこちょこ試してみたほうがより効率的かもね
804
垢版 |
2017/10/11(水) 18:19:59.78ID:Q0CgrKbU
>>802
逆にしばらくエンジニアやってりゃ、技術文書は読めるようになったりするけどな。
仕事でやるなら翻訳自体、翻訳メモリ使って翻訳することの方が多いし。
翻訳メモリで完全新規な文書の翻訳はたまに手伝う。
805デフォルトの名無しさん
垢版 |
2017/10/11(水) 18:21:22.65ID:AVBsiIwy
>>801
おお。そうだ。このスレはこれから英語で書こう。
806デフォルトの名無しさん
垢版 |
2017/10/11(水) 18:22:16.37ID:AVBsiIwy
i have a pen
2017/10/11(水) 20:28:51.56ID:qqbN54VH
>>806
文頭は大文字にしなきゃ
2017/10/11(水) 20:39:22.12ID:M3+oH0ZC
Iは文頭でなくても大文字にしなきゃ
2017/10/11(水) 20:56:44.06ID:PtNlY4pv
have じゃなくて am でしょ
2017/10/11(水) 21:23:33.96ID:JdWo4X1f
I am a pen
2017/10/11(水) 23:47:37.98ID:9t+rVGQp
me too
2017/10/12(木) 07:16:44.81ID:OX/pZMRS
人間はいねぇのかここは...
2017/10/12(木) 08:54:42.09ID:Pi/VQsL7
高卒レベル英語力(英検2級)と辞書があれば、読めるだろうに。
814デフォルトの名無しさん
垢版 |
2017/10/12(木) 09:09:03.89ID:tSTw7rai
は?英語なんて知らなくても全部グーグル先生に突っ込めば読める
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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