JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org
探検
Kotlin [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/02/27(土) 01:46:01.68ID:Ag8w7//2
681デフォルトの名無しさん
2017/09/26(火) 22:18:45.79ID:8E9hjYW6 >>680
それ return 書かなくても同じだよね?
それ return 書かなくても同じだよね?
682デフォルトの名無しさん
2017/09/27(水) 00:00:41.38ID:u5lJ+g1P 簡素化のためにUnitを返す型をクロージャーにしてるけど任意の型を戻せるようにしたいんじゃないの
>>680は顧客が本当に必要だったものとは別のものが出来上がってる事例な気がする
>>680は顧客が本当に必要だったものとは別のものが出来上がってる事例な気がする
683デフォルトの名無しさん
2017/09/27(水) 02:23:01.67ID:T8WeFZTh >>677
return body ではなく return body() では?
return body ではなく return body() では?
684デフォルトの名無しさん
2017/09/28(木) 00:26:24.46ID:iSh/X78V 前から思ってたんだけど、Kotlinって
val hogeIsEmpty = hogeが空かどうかのわりと長い1行
if (hogeIsEmpty) {
// then
}
みたいな読み下す優先の変数の名前とか分離定義って推奨されてる?
Javaでやらないようなことはやらんほうがいい? 条件カッコに改行ありで詰め込むべき?
val hogeIsEmpty = hogeが空かどうかのわりと長い1行
if (hogeIsEmpty) {
// then
}
みたいな読み下す優先の変数の名前とか分離定義って推奨されてる?
Javaでやらないようなことはやらんほうがいい? 条件カッコに改行ありで詰め込むべき?
685デフォルトの名無しさん
2017/09/28(木) 00:37:08.13ID:ZguEyfSR そういうのはRubyでやれや!って煽られて終わりな気も致しますよ
686デフォルトの名無しさん
2017/09/28(木) 00:42:19.80ID:iSh/X78V くっ…
687デフォルトの名無しさん
2017/09/28(木) 01:13:09.11ID:TXb2X2Zy えーそれ言語関係なくない?
hogeIsEmptyな関数に抽出するのは
リファクタリングの基本だしJavaでもやるだろ
hogeIsEmptyな関数に抽出するのは
リファクタリングの基本だしJavaでもやるだろ
688デフォルトの名無しさん
2017/09/28(木) 18:33:31.64ID:Qp0jWVYU むしろJavaだとboolean isHogeEmpty()ってメソッドを作るケースだから
Javaの文法が古臭いと仕切り直したKotlinではメソッドを作らないのが正当なんじゃないの
Javaの文法が古臭いと仕切り直したKotlinではメソッドを作らないのが正当なんじゃないの
689デフォルトの名無しさん
2017/09/28(木) 20:41:39.85ID:DhynOxwg そうなのか?
うーん。なんだったらgetだけのプロパティ作ってその中でやるという手もあるが。
うーん。なんだったらgetだけのプロパティ作ってその中でやるという手もあるが。
690デフォルトの名無しさん
2017/09/28(木) 21:04:34.88ID:wU4E+DpF691デフォルトの名無しさん
2017/09/29(金) 08:30:52.93ID:Zb0/fBQl あー、rubyは変数いきなり定義だし命名規則もsnake_caseで緩いし変数もメソッドも呼び出し方同じにできるし
真偽には?つけてよいという風潮があるからこういうの得意だね
Java/Kotlinは読み下しさせようとするとわりとデコボコするけどそのかわり静的コンパイルだから実行パフォーマンスへの影響が少ない
(だから「ちょっと動かして見やすく名前つけただけで動作的中身的には一緒だから安心して」という説得に向いてるのはKotlinのほうではある)
Kotlinにはスコープ関数とかletとかitとか(あとはbeがあれば完璧だ)あるのでそのへん駆使してもらうしか
真偽には?つけてよいという風潮があるからこういうの得意だね
Java/Kotlinは読み下しさせようとするとわりとデコボコするけどそのかわり静的コンパイルだから実行パフォーマンスへの影響が少ない
(だから「ちょっと動かして見やすく名前つけただけで動作的中身的には一緒だから安心して」という説得に向いてるのはKotlinのほうではある)
Kotlinにはスコープ関数とかletとかitとか(あとはbeがあれば完璧だ)あるのでそのへん駆使してもらうしか
692デフォルトの名無しさん
2017/09/29(金) 09:00:05.56ID:RLeXl8wr 一般的には説明変数を追加するのに比べると
メソッド抽出のほうが可読性も保守性も高い
デメリットもあるから状況次第で選択すればいい
いずれにしても言語に依存した話ではないよ
メソッド抽出のほうが可読性も保守性も高い
デメリットもあるから状況次第で選択すればいい
いずれにしても言語に依存した話ではないよ
693デフォルトの名無しさん
2017/10/01(日) 12:07:39.75ID:l76lJP+R 言語に関係ない話だと思うんだけどごめん
初心者がゲーム作ってて、たとえばRPGのアイテムみたいなのをクラスで実装したいって考えたとき、
たとえば食べ物アイテムを100個くらい作ろうと思ったら、名前とか重さとか売価とかレシピとかを持ってるクラスが(下手するとktファイルも)それだけで100個あることになるよね
何かアイテムのデータを確かめたいとか書き換えたいとか思ったら100個の中から探さないといけなくなる気がして、とてもしんどいんだけど、なにか便利な管理方法ってあるものなのかしら
初心者がゲーム作ってて、たとえばRPGのアイテムみたいなのをクラスで実装したいって考えたとき、
たとえば食べ物アイテムを100個くらい作ろうと思ったら、名前とか重さとか売価とかレシピとかを持ってるクラスが(下手するとktファイルも)それだけで100個あることになるよね
何かアイテムのデータを確かめたいとか書き換えたいとか思ったら100個の中から探さないといけなくなる気がして、とてもしんどいんだけど、なにか便利な管理方法ってあるものなのかしら
694デフォルトの名無しさん
2017/10/01(日) 12:35:40.87ID:z+KkZaZ7 データベース…
695デフォルトの名無しさん
2017/10/01(日) 13:26:09.11ID:l76lJP+R でもデータベースはメソッド生えないにゃん…
現状の超でっかいMapオブジェクト
{"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…
ビルド時にCSVファイルとかからクラスファイルを生成してもらえばいいのではと思ったけど
書いてるときにアイテムのクラスやメソッドが参照できないとIDEが補完警告出すことに気づいてぐにょーんってなってる
たぶんゲーム特有のなんとかかんとかなんだろうと思うのでなんとかする
現状の超でっかいMapオブジェクト
{"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…
ビルド時にCSVファイルとかからクラスファイルを生成してもらえばいいのではと思ったけど
書いてるときにアイテムのクラスやメソッドが参照できないとIDEが補完警告出すことに気づいてぐにょーんってなってる
たぶんゲーム特有のなんとかかんとかなんだろうと思うのでなんとかする
696デフォルトの名無しさん
2017/10/01(日) 13:29:23.37ID:sf4M11/u つまり、どういうこと?
697デフォルトの名無しさん
2017/10/01(日) 13:45:30.71ID:kJ8csjIE698デフォルトの名無しさん
2017/10/01(日) 15:01:31.15ID:OWvF7Xmk むしろそれぞれクラス化するのはアクションの方で
アイテムなんて1クラスで十分じゃね
アイテムなんて1クラスで十分じゃね
699デフォルトの名無しさん
2017/10/01(日) 15:03:06.78ID:7TAdAwOu ゲ制でやれ
700デフォルトの名無しさん
2017/10/01(日) 15:06:13.80ID:4trAwtIa >>695
> {"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
> の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…
それの何がいけないの?
> {"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
> の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…
それの何がいけないの?
701デフォルトの名無しさん
2017/10/01(日) 15:11:03.14ID:wO0rh9jl 色々用途や効果がある個々のアイテムインスタンスが対応するメソッドを持ってて自分に関することは全て知っていて
たとえば砕いたら何になるのかとか、字面に置いたらどのテクスチャになるのかとか、を問い合わせる構造にしたいのはわかる気がする
でもそれ理想っぽいけどお察しの通りデータ増えると破綻するんすよ…
たとえば砕いたら何になるのかとか、字面に置いたらどのテクスチャになるのかとか、を問い合わせる構造にしたいのはわかる気がする
でもそれ理想っぽいけどお察しの通りデータ増えると破綻するんすよ…
702デフォルトの名無しさん
2017/10/01(日) 15:24:19.98ID:z+KkZaZ7 よくわかんないけどデータベース(SQL)から(id,)name,price,weight,actionの(データ)クラスに入れてMapに突っ込むのは普通じゃね
アクションは共通の動作だけハンドラーに直接書いて、固有の動作は個々のアイテムごとにスクリプトファイル作ってそんなかにアクションごとのメソッド書いて、それをハンドラーから実行させる
アクションは共通の動作だけハンドラーに直接書いて、固有の動作は個々のアイテムごとにスクリプトファイル作ってそんなかにアクションごとのメソッド書いて、それをハンドラーから実行させる
703デフォルトの名無しさん
2017/10/01(日) 15:27:41.13ID:z+KkZaZ7 あ
完全にサーバー<=>クライアント型のゲームを想定してました忘れてください
完全にサーバー<=>クライアント型のゲームを想定してました忘れてください
704デフォルトの名無しさん
2017/10/01(日) 15:35:03.09ID:YDbLDpC/ よっぽどドラクエ2みたいなツクールサンプル的な単一用途アイテムでもない限り
「薬草という多用途アイテムを表現するのに薬草クラスのインスタンスを作って保持する」というのは悪手
このへんは個別に考えてもらわなければならないのでまあ結論としては>>699
個々人が下手に作って再発明して失敗して適応適用していかなきゃならんなんてなんて非効率なんだとは思うのだが今のところ光明はない
ぶっちゃけ初心者にゲーム作らせるのこのへんの問題もあってあんま好きではないのだ。ユーティリティアプリが無難
「薬草という多用途アイテムを表現するのに薬草クラスのインスタンスを作って保持する」というのは悪手
このへんは個別に考えてもらわなければならないのでまあ結論としては>>699
個々人が下手に作って再発明して失敗して適応適用していかなきゃならんなんてなんて非効率なんだとは思うのだが今のところ光明はない
ぶっちゃけ初心者にゲーム作らせるのこのへんの問題もあってあんま好きではないのだ。ユーティリティアプリが無難
705デフォルトの名無しさん
2017/10/01(日) 16:36:39.58ID:IPLbJXkb 薬草を使った時の処理
薬草を燃やした時の処理
薬草を売った時の処理
…
薬草クラスにまとめようがまとめまいが
いずれはどこかに書かなければならない
だったら最初から薬草クラスに入れとけって話
薬草を燃やした時の処理
薬草を売った時の処理
…
薬草クラスにまとめようがまとめまいが
いずれはどこかに書かなければならない
だったら最初から薬草クラスに入れとけって話
706デフォルトの名無しさん
2017/10/01(日) 17:36:02.79ID:KiopyZMH じゃあ毒消し草にも同じ処理コピペすんの?
707デフォルトの名無しさん
2017/10/01(日) 23:16:31.50ID:aVSvWtqd アルゴリズムと計算量を知らないのか
千個の中から、1つを見つける際、全(線形)探索なら千回、
2分探索なら、2^10 = 1,024 だから、10回で見つけられる
2分探索なら、データ数が千個でも、探索回数は、1/100 になる
2千個になっても、全(線形)探索なら2千回、
2分探索なら、11回で見つけられる。
探索回数は、1/200 になる
データ数が倍になっても、探索回数は1回しか増えないが、
データを2分木で持っていないと、2分探索はできない
千個の中から、1つを見つける際、全(線形)探索なら千回、
2分探索なら、2^10 = 1,024 だから、10回で見つけられる
2分探索なら、データ数が千個でも、探索回数は、1/100 になる
2千個になっても、全(線形)探索なら2千回、
2分探索なら、11回で見つけられる。
探索回数は、1/200 になる
データ数が倍になっても、探索回数は1回しか増えないが、
データを2分木で持っていないと、2分探索はできない
708デフォルトの名無しさん
2017/10/01(日) 23:32:16.54ID:kJ8csjIE >>707
Mapのlookupなんですけど
Mapのlookupなんですけど
709デフォルトの名無しさん
2017/10/01(日) 23:40:51.98ID:3vO8zSI2 プログラミング向いてなさそう
710デフォルトの名無しさん
2017/10/01(日) 23:54:27.15ID:f01mTcSu 二分探索と二分探索木の探索って違わない……?
711デフォルトの名無しさん
2017/10/02(月) 00:18:14.35ID:YWGKtTIQ >>710
文章を最後まで読んでる偉い子
文章を最後まで読んでる偉い子
712デフォルトの名無しさん
2017/10/02(月) 01:24:21.58ID:wSRtZd0X ゲームでマスタ類はID(=index)でアクセスするので計算量はO(1)
そして>>693の話なら探すのは開発者なのでデータ化してメンテ画面作れという話になる
そして>>693の話なら探すのは開発者なのでデータ化してメンテ画面作れという話になる
713デフォルトの名無しさん
2017/10/02(月) 04:26:00.56ID:/O3TaAQA 長文で探索語るなら、ZDDの説明ぐらいしなされ
714デフォルトの名無しさん
2017/10/02(月) 08:35:15.29ID:fVjCl62I 一覧で管理したくなる量のデータ(とそれに紐づいた処理)のクラスをいちいち手作業で作るのが面倒大変だけどこれでいいのかなって話なんじゃないの
前が見えなくなる人は迷惑だな
前が見えなくなる人は迷惑だな
715デフォルトの名無しさん
2017/10/02(月) 10:28:12.40ID:o9ncCo8n JVMにはJAXBとかいう古き良きアーキテクチャがあってだな・・・
XMLだろうが、CSVだろうが、DBだろうが、(データ)クラスだろうが、どこに置くかは好みよね
オブジェクト指向で親クラスにユーティリティ共通メソッド置くか
関数型でユーティリティクラスに共通関数置くかも多分好みの範疇だろうよ
その上で、Kotlinだと何が流行りなの?(データ)クラス+関数型が流行り?
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 には勝てない
計算量は、O(log n)
全(線形)探索なら、O(n)
計算量は、>>707
に書いた通り
n = 100万なら、全探索で、100万回掛かるところが、
2分探索では、2^20 = 100万だから、20回
データを2分探索木で構築していないのなら、DB には勝てない
717デフォルトの名無しさん
2017/10/02(月) 23:38:58.59ID:o0D0xmrR O(1)でやってんだからDBに勝ってるだろ
718デフォルトの名無しさん
2017/10/03(火) 00:27:03.06ID:G2lKIaaK 100個のインスタンスを、生成しただけだろ?
Map(key : value) になっていないだろ?
Map なら、O(1) だけど
Map(key : value) になっていないだろ?
Map なら、O(1) だけど
719デフォルトの名無しさん
2017/10/03(火) 01:18:34.37ID:aqsVlxub720デフォルトの名無しさん
2017/10/03(火) 10:03:00.11ID:/m6PSf5w >>714も無視しないほうがいいような気がする
jarファイル中のクラスファイル検索なんて1万でもさして問題にならん(さすがに作成は人間の仕事ではないが)
そして問題はそこではなかった
理解できなくなっちゃったんだろうけど
jarファイル中のクラスファイル検索なんて1万でもさして問題にならん(さすがに作成は人間の仕事ではないが)
そして問題はそこではなかった
理解できなくなっちゃったんだろうけど
721デフォルトの名無しさん
2017/10/04(水) 02:14:07.85ID:KVI0o5Io Kotlinの話しろよ
722デフォルトの名無しさん
2017/10/04(水) 08:09:18.36ID:kznoEkrV JRE8では何ともなかったのにJRE9だとWARNING吐くようになったのは仕様?
Kotlinを最新の1.1.51にしても直らなかった。
Kotlinを最新の1.1.51にしても直らなかった。
723デフォルトの名無しさん
2017/10/04(水) 08:38:43.69ID:JPTWWYYO なんて出てるの?
724デフォルトの名無しさん
2017/10/04(水) 08:42:20.58ID:0hGgeKFz Androidの場合は全参照メソッド数が65536超えるとコンパイル不可能になるという問題が一応あるぞ
つらいMultiDex使う羽目になるので「どうぐぜんぶにめそっどがはえてるおぶじぇくとしこうてきにただしいくらす」以外のアプローチも初期からご検討いただくと幸いだ
つらいMultiDex使う羽目になるので「どうぐぜんぶにめそっどがはえてるおぶじぇくとしこうてきにただしいくらす」以外のアプローチも初期からご検討いただくと幸いだ
725デフォルトの名無しさん
2017/10/04(水) 09:07:35.93ID:V3GzLm78 multidexって何が辛いの?
726デフォルトの名無しさん
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
インタプリタにて↓
>>> 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
728デフォルトの名無しさん
2017/10/04(水) 19:35:36.92ID:sxpDUYrW kotlinって自作例外を「アプリ内事象○○のせいで完了できなかったんで3つくらい上の自作catchで捕まえて処置よろしこ」程度のメッセージ的に気軽に使ってもいい?
外部提供APIとかじゃなく、自作のプログラム内での処理依頼のやり取り用
外部提供APIとかじゃなく、自作のプログラム内での処理依頼のやり取り用
729デフォルトの名無しさん
2017/10/04(水) 20:44:57.35ID:+JSlwxf3 String, char[] が異なる型なのかも
文字配列は、C言語の、\0 終端文字列かな?
String型は高機能な、C++のString型かな?
文字配列は、C言語の、\0 終端文字列かな?
String型は高機能な、C++のString型かな?
730デフォルトの名無しさん
2017/10/04(水) 21:19:13.27ID:1osd033a kotlinの技術書って、何で未だに日本向けのは一冊しか出てないの?
731デフォルトの名無しさん
2017/10/04(水) 21:23:31.36ID:ekjB4cHk 最近のAndroidはmultidexしなくても動くし、minSdkVersionを低く指定したら勝手にmultidexでバイナリ作られるから考慮するの無駄
というのは置いておいて、Java9のModule(Project Jigsaw)でアクセスコントロールが強化されて不正なリフレクションに対して警告出してるんじゃね
将来的には警告じゃなくエラーになりそうな気がするから、Kotlinのバージョンアップで直るのを待つべ
というのは置いておいて、Java9のModule(Project Jigsaw)でアクセスコントロールが強化されて不正なリフレクションに対して警告出してるんじゃね
将来的には警告じゃなくエラーになりそうな気がするから、Kotlinのバージョンアップで直るのを待つべ
732デフォルトの名無しさん
2017/10/04(水) 22:29:29.12ID:vuQl5P59 長澤太郎以外は販売できないことになっている
733デフォルトの名無しさん
2017/10/05(木) 01:07:21.32ID:ioWgBjMx >>730
まだあまり流行ってなくて出版社が乗り気じゃないのでは?
まだあまり流行ってなくて出版社が乗り気じゃないのでは?
734デフォルトの名無しさん
2017/10/05(木) 04:39:51.99ID:i/YPJQu8 今月2冊出るよ
735デフォルトの名無しさん
2017/10/05(木) 09:20:35.38ID:qdkn4E5e おおそうか
736デフォルトの名無しさん
2017/10/05(木) 21:38:31.29ID:c5+kzESi サーバーサイドKotlin明日発売やないか
737デフォルトの名無しさん
2017/10/05(木) 23:00:14.40ID:RWFlOlgJ 流行っているかどうかは、掌田津耶乃が判断する。
このおっさんが本を出す分野は、流行っていると言える
このおっさん1人で、プログラミングの約半分の分野を、網羅しているw
このおっさんが本を出す分野は、流行っていると言える
このおっさん1人で、プログラミングの約半分の分野を、網羅しているw
738デフォルトの名無しさん
2017/10/05(木) 23:19:11.04ID:c5+kzESi そいつが出す本自体は糞だけどな
739デフォルトの名無しさん
2017/10/05(木) 23:21:16.13ID:XUc7C4CE 別に流行り廃りでプログラムするわけじゃないしな
740デフォルトの名無しさん
2017/10/06(金) 01:37:01.01ID:x0C9073k741デフォルトの名無しさん
2017/10/06(金) 04:09:03.86ID:tqIbkLAn Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
Kotlin Webアプリケーション 新しいサーバサイドプログラミング、長澤 太郎、2017/10/6
Kotlin Webアプリケーション 新しいサーバサイドプログラミング、長澤 太郎、2017/10/6
742デフォルトの名無しさん
2017/10/06(金) 05:25:11.21ID:dm5GZqP5 http://kotlin.hatenablog.jp/entry/2012/12/10/093018
このコードエラーになるんだけど、情報古くて今はラムダで引数に()使えなくて
戻り値の型を指定することができないという理解でいいんですかね?
このコードエラーになるんだけど、情報古くて今はラムダで引数に()使えなくて
戻り値の型を指定することができないという理解でいいんですかね?
743デフォルトの名無しさん
2017/10/06(金) 05:39:21.03ID:tqIbkLAn Try Kotlin のサイトで、そのソースコードを入力して、エラーメッセージを見れば?
744デフォルトの名無しさん
2017/10/06(金) 09:08:25.48ID:NqBQU0ep それは答を教えてくれるわけじゃないからなあ
>>742
関数リテラルの戻り値の指定はこうしてくだされ
val result: (Int, Int) -> Int = {a, b -> a * b }
2012アドベントカレンダーの結果はもう検索で出なくしたほうがいいと思うんだよねえ
>>742
関数リテラルの戻り値の指定はこうしてくだされ
val result: (Int, Int) -> Int = {a, b -> a * b }
2012アドベントカレンダーの結果はもう検索で出なくしたほうがいいと思うんだよねえ
745デフォルトの名無しさん
2017/10/06(金) 10:14:22.41ID:dm5GZqP5 >>744
なるほど。ということは即時関数だと
val result: String = {a: Int, b: Int -> a.toString() + b.toString()}(3, 4)
みたいな感じにすればいいのね
なるほど。ということは即時関数だと
val result: String = {a: Int, b: Int -> a.toString() + b.toString()}(3, 4)
みたいな感じにすればいいのね
746デフォルトの名無しさん
2017/10/06(金) 11:25:26.06ID:oni6PLk4 val old = aaa.value
aaa.doValueMayChange()
if (old != aaa.value) aaaActionIsSuccess()
これなんかステキな感じに書けたりしませんかね
実際には長い処理してるだけのdoValueMayChange()の戻り値をこのためだけに真偽値にしてチェックするのってなんかキモくないですかね
if ( aaa.doValueMayChangeAndReturnTrueIfInnerTargetValueIsChanged() ) aaaActionSuccess()
aaa.doValueMayChange()
if (old != aaa.value) aaaActionIsSuccess()
これなんかステキな感じに書けたりしませんかね
実際には長い処理してるだけのdoValueMayChange()の戻り値をこのためだけに真偽値にしてチェックするのってなんかキモくないですかね
if ( aaa.doValueMayChangeAndReturnTrueIfInnerTargetValueIsChanged() ) aaaActionSuccess()
747デフォルトの名無しさん
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)
...
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)
...
748デフォルトの名無しさん
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タブ表示
書かなくても動いてる人はどっかで設定してるんだろうな
動いた。最後のほうの独立した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タブ表示
書かなくても動いてる人はどっかで設定してるんだろうな
749デフォルトの名無しさん
2017/10/06(金) 21:33:44.02ID:tqIbkLAn プログラミング GROOVY、2011
Gradle 徹底入門、2014
Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応、掌田津耶乃、2017
Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集、2012
Gradle 徹底入門、2014
Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応、掌田津耶乃、2017
Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集、2012
750デフォルトの名無しさん
2017/10/06(金) 22:27:21.32ID:tSMXLmVc >>748
同じ苦労したことある。ドキュメントに書いてよ…。
同じ苦労したことある。ドキュメントに書いてよ…。
751デフォルトの名無しさん
2017/10/07(土) 05:51:08.18ID:dZntJrcK >>746
aaaに押し込みなさい
aaaに押し込みなさい
752デフォルトの名無しさん
2017/10/07(土) 14:33:30.45ID:tYMANlqN SPekはBDDだし難しいよね
作ってるぶんにはメソッドの引数と戻り値が間違いなく動きます下手に中身変えたらREDですテストのほうがいいんだけどなー
作ってるぶんにはメソッドの引数と戻り値が間違いなく動きます下手に中身変えたらREDですテストのほうがいいんだけどなー
753デフォルトの名無しさん
2017/10/07(土) 14:36:59.78ID:lxJ0Yf9D kotlinはJavaわかんなくても他言語やってたらイケル?
754デフォルトの名無しさん
2017/10/07(土) 14:53:56.94ID:tYMANlqN >>753
言語仕様の理解においてはJavaの経験は不要
ただし事例のWeb検索に関して
「Javaでこう書いてるってことはKotlinだとこう書くんだろうな」
「欲しいJavaの処理はだいたいこのへんだろうからここをコピペしてIDEで自動変換しよう」
というようなことができる程度の「Javaプログラムを読める力」が実際には必要
でもまあネットでJava入門を3日かけて最後まで読んで身につく程度があれば充分なのでそれこそ他言語経験があれば問題はないね
言語仕様の理解においてはJavaの経験は不要
ただし事例のWeb検索に関して
「Javaでこう書いてるってことはKotlinだとこう書くんだろうな」
「欲しいJavaの処理はだいたいこのへんだろうからここをコピペしてIDEで自動変換しよう」
というようなことができる程度の「Javaプログラムを読める力」が実際には必要
でもまあネットでJava入門を3日かけて最後まで読んで身につく程度があれば充分なのでそれこそ他言語経験があれば問題はないね
755デフォルトの名無しさん
2017/10/07(土) 14:59:26.09ID:lxJ0Yf9D756デフォルトの名無しさん
2017/10/07(土) 18:31:13.36ID:b4KK/o19 javaは1日でマスターできるので実質java未経験でも問題ないよ
757デフォルトの名無しさん
2017/10/07(土) 19:18:53.56ID:rBYfi2xH 変数に入れた文字列でメソッドやプロパティを呼ぶことはできますか
val mes = "toUpperCase"
someString.callMethod(mes, null)
これでsomeString.toUpperCase()のかわりになるみたいなやつです
val mes = "toUpperCase"
someString.callMethod(mes, null)
これでsomeString.toUpperCase()のかわりになるみたいなやつです
758デフォルトの名無しさん
2017/10/07(土) 19:29:23.45ID:+RQU5E5j ことぅりんだからなお前ら
ことりんとかいってたら数す
ことりんとかいってたら数す
759デフォルトの名無しさん
2017/10/07(土) 19:33:19.97ID:+RQU5E5j それにしてもAppleがObjective-CにSwiftを追加したと思ったらGoogleがJavaにKotlinを追加してどいつもこいつもまったく...
760デフォルトの名無しさん
2017/10/07(土) 19:41:49.21ID:XbHkmFTG ことりんかわいい
761デフォルトの名無しさん
2017/10/07(土) 22:16:30.42ID:f9dDdlSq ことりん(*´ェ`*)ポッ
762デフォルトの名無しさん
2017/10/07(土) 22:18:46.44ID:iveAgMmn 人間だったら絶対美少女
763デフォルトの名無しさん
2017/10/07(土) 22:55:16.08ID:LDd+/z40 ちょまどが漫画書いてくれないかなあ
764デフォルトの名無しさん
2017/10/07(土) 23:13:31.53ID:X09Q1vcV ちょまど(笑)
765デフォルトの名無しさん
2017/10/07(土) 23:16:52.81ID:+RQU5E5j766デフォルトの名無しさん
2017/10/07(土) 23:38:16.22ID:f9dDdlSq >>757
君の言いたいことがよくわからない。
君の言いたいことがよくわからない。
767デフォルトの名無しさん
2017/10/07(土) 23:51:42.16ID:2fKU1//d 何言語からやってきたかは知らんが動的系のevalがほしんだろ
Reflectionするしかないかな
Reflectionするしかないかな
768デフォルトの名無しさん
2017/10/08(日) 01:04:04.02ID:bhcsmcAx あざとい名前つけやがって
769デフォルトの名無しさん
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)
KFunctionのcall
val kclass = YourClass::class
val function = kclass.functions.find { it.name == "method_name" }
val instance = YourClass()
function?.call(instance, args)
770デフォルトの名無しさん
2017/10/08(日) 01:22:31.02ID:93IJP3PA >>767
Objective-Cだと結構普通に使うんよ
Objective-Cだと結構普通に使うんよ
771デフォルトの名無しさん
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"]
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
773デフォルトの名無しさん
2017/10/08(日) 21:54:57.44ID:32PQUixn IntelliJとSpekでSpecファイルひとつのテストってできないのかな
なんかできそうだけどいまいちよくわからんエラーが
これってそもそもできるもんなの? 俺がなんか悪いだけ?
なんかできそうだけどいまいちよくわからんエラーが
これってそもそもできるもんなの? 俺がなんか悪いだけ?
774デフォルトの名無しさん
2017/10/09(月) 19:59:00.68ID:3clxx/P9 リストを先頭からN個に分割というのを一発でできたりしない?
["a","b","c","d","e"] を2つずつ分割して [["a","b"], ["c","d"] ,["e"]] にしたい
["a","b","c","d","e"] を2つずつ分割して [["a","b"], ["c","d"] ,["e"]] にしたい
775デフォルトの名無しさん
2017/10/09(月) 20:53:05.90ID:sCOU7I7y >>740
その本さっき紀伊国屋で買った
その本さっき紀伊国屋で買った
776デフォルトの名無しさん
2017/10/09(月) 21:17:44.65ID:bvkIQjV4 その本もさ、Kotlin本の選択肢がないから仕方なく買うってレベルの本だよな
あの初心者向けの無駄にポップなレイアウト、なんとかなんねえのかな
内容の割に無駄に重いし分厚いし、技術書なんて無地の紙でいいんだよ
あの初心者向けの無駄にポップなレイアウト、なんとかなんねえのかな
内容の割に無駄に重いし分厚いし、技術書なんて無地の紙でいいんだよ
777デフォルトの名無しさん
2017/10/09(月) 21:55:29.10ID:4WiIHmfQ778デフォルトの名無しさん
2017/10/09(月) 22:00:53.70ID:4WiIHmfQ Try Kotlinだとコード共有にアカウントが必要なのでKotlin対応の別のを探した
長めの実行可能なコード貼るのに便利だと思う
アカウント無しでsave出来るオンラインコンパイラ
http://rextester.com/l/kotlin_online_compiler
長めの実行可能なコード貼るのに便利だと思う
アカウント無しでsave出来るオンラインコンパイラ
http://rextester.com/l/kotlin_online_compiler
779デフォルトの名無しさん
2017/10/09(月) 22:34:41.54ID:c41RoAYB 言語は道具であってそれを使って何を作るのかが重要なわけだがKotlinによって何か革命が起きる見込みでもあるのか?
それともモダンな何かをいじってる自分が好きなだけ?
それともモダンな何かをいじってる自分が好きなだけ?
780デフォルトの名無しさん
2017/10/09(月) 23:58:04.80ID:tFlwnlNI■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「日本はドイツと違い反省せず」…中国外相、独外相に対日批判 台湾問題で理解求める [少考さん★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 高市政権「かけてもつながらない。機能していない」防衛当局間のホットライン機能せず [834922174]
- あたしゃやだよ
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑★2 [931948549]
- 【朗報】ケンモジサンが買うふりかけ、二択に絞られる [394133584]
- 30過ぎた大人おじさんが大学生(昔)のままのファッションをする「おじさんキッズコーデ」、炎上して問題視される。 [153490809]
