1 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 20:29:41.41 ID:oXOQORcd.net] JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう ※前スレ https://mevius.5ch.net/test/read.cgi/tech/1531818027/
607 名前:デフォルトの名無しさん [2019/04/24(水) 12:11:30.51 ID:f6AiwYyw.net] そのうち在日ユダヤが「日本人にベーグル盗まれた」なんて狂言やりそう
608 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 12:20:40.85 ID:ymPUK1bE.net] >>594 日本語固有のややこしい漢字の名称を無理やり英語にするよりはそのまま使った方が可読性もはるかにいいわな 何か不都合が起きたらIDEでリネームすりゃいいだけの話だから、全然ありだと思う 俺はテストケース名は日本語がんがん使う
609 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 12:48:24.16 ID:CTi91KC0.net] >>596 Swiftの designated initializer ≒ Kotlinの primary constructor Swiftの convenience initializer ≒ Kotlinの secondary constructor
610 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 13:08:03.94 ID:CTi91KC0.net] >>599 の具体例 Swift https://ideone.com/48Boj1 Kotlin 比較用 https://ideone.com/ovwjrs Kotlin 短縮 https://ideone.com/IcR8Wo
611 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 13:28:15.20 ID:CQvKnKTI.net] >>577 だけどこれ無理っぽいな
612 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 14:01:42.54 ID:CTi91KC0.net] >>577 勧めるものじゃないけど、一応疑似的にならば https://ideone.com/7lTdsi class A {} private val xname = WeakHashMap<Any,String?>() var A.name: String? get() = xname[this] set(v:String?) { xname[this] = v }
613 名前:デフォルトの名無しさん [2019/04/24(水) 14:14:45.53 ID:ZqBzQREh.net] >>599 thx
614 名前:デフォルトの名無しさん [2019/04/24(水) 14:19:09.62 ID:ZqBzQREh.net] >>602 Kotlin day3の俺には、なぜAのインスタンスがnameプロパティを持つのか? 良く解らん。 Rubyみたいに、Aを再オープンしてるのか?
615 名前:デフォルトの名無しさん [2019/04/24(水) 14:22:08.49 ID:ZqBzQREh.net] >>604 fun mainの外でthisは何を指してるのだ?
616 名前:デフォルトの名無しさん [2019/04/24(水) 14:28:29.52 ID:ZqBzQREh.net] >>605 >fun mainの外でthis ってのはMainKtのインスタンスってことか? うぅーん。後で確認。 fun main(args: Array<String>) {} in a file called Main.kt will compile to something like: public class MainKt { public static void main(String[] args) {} }
617 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 14:55:22.29 ID:CTi91KC0.net] >>604 602は拡張プロパティとシングルトンのWeakHashMapを利用している 詳細はgoogleで 拡張プロパティ: 見た目はプロパティだが実際のところ staticメソッドのシンタックスシュガー fun A_name_get(thisObj: A): String? { return xname.get(thisObj) } println( a.name ) ↓ println( A_name_get(a) ) WeakHashMap: キーがGC対象となるのを阻害しないMap aとnameの関連付けはここに入っている aがへの参照が無くなったら、nameへの関連付けもCG対象になって消える
618 名前:デフォルトの名無しさん [2019/04/24(水) 15:34:34.20 ID:ZqBzQREh.net] >>607 >拡張プロパティ 気になる! Rubyの特異メソッドみたいなもんか? 特異メソッド:クラスに住んでるメソッドとは異なり、オブジェクトに住んでるソレ!
619 名前:デフォルトの名無しさん [2019/04/24(水) 15:49:00.84 ID:ZqBzQREh.net] >>608 特異メソッドとは違うみたい。 Rubyのクラスの再オープン、オープンクラス、monkey patching とか言う邪悪なテクみたい。 Dateクラスに本来備わってないyesterday, tomorrowとかいうpropertyを追加したりできる。
620 名前:デフォルトの名無しさん [2019/04/24(水) 15:52:13.17 ID:ZqBzQREh.net] うぅーん。 top level でthisが何を指しているのか? よく解らん。
621 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 15:52:31.03 ID:CTi91KC0.net] 連投せずググりなさい
622 名前:デフォルトの名無しさん [2019/04/24(水) 15:56:37.35 ID:ZqBzQREh.net] >>610 きっとthisは、nameプロパティーが呼ばれるまで定まらなくて、nameプロパティーのレシーバー(a1, a2)の事なんだ。 と言う事にしておこう。 拡張関数、拡張プロパティー、が必要になった時のメモ Kotlinの拡張関数と拡張プロパティについて https://qiita.com/RyotaMurohoshi/items/4b958af1d23da6d91a61
623 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 17:00:48.57 ID:HA70GdMc.net] >ID:ZqBzQREh 日記は自分のブログでやってくれ
624 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 17:06:36.37 ID:ymPUK1bE.net] 散々言われてるみたいだけどまずとりあえずググる習慣をつけなさい 君はしなくていい回り道が多すぎる
625 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:05:15.35 ID:CQvKnKTI.net] >>602 なるほど外のmapに入れられたのか、盲点だった それとweakhashmapなんてあったのか初めて見たわ
626 名前:デフォルトの名無しさん [2019/04/24(水) 20:26:09.12 ID:ZqBzQREh.net] >>547 30分で…の記事、2日かけてようやくinfix記法のところまで読めた。 多分費やした時間は6hr以上。 全然30分じゃない。
627 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:28:11.81 ID:Hf91oH+Q.net] >>614 君も謝る羽目になるよ
628 名前:デフォルトの名無しさん [2019/04/24(水) 20:45:23.71 ID:ZqBzQREh.net] なんと、キーワードになっている識別子もエスケープ可能! 例:isと言う名前のメソッドも呼び出せる。 foo.`is`(bar) こんな感じ!
629 名前:デフォルトの名無しさん [2019/04/24(水) 20:49:33.98 ID:ZqBzQREh.net] Qiitaの30分で…の記事、走り読みした。約8hr位要した。 Vim内でチョコチョコ試運転しながら、走り読み。 お疲れ様でした。▶俺
630 名前:デフォルトの名無しさん [2019/04/24(水) 20:52:35.15 ID:ZqBzQREh.net] レシーバー付き関数リテラル、がよく解らんかった。 クラス移譲、プロパティー移譲 byとか使う奴。こんなのSwiftには無かったなぁ。
631 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:03:15.80 ID:kFXKi6KY.net] >>596 Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016 太郎本を買っていない香具師は、モグリ!
632 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:13:18.43 ID:kFXKi6KY.net] Kotlin は、swift とは似ていない Kotlin は、Groovy を静的にしたもの。 つまり、Ruby, JavaScript の系統 オブジェクト指向・関数型のミックス
633 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:03:35.37 ID:JvprRVGM.net] Swift程の糞はない
634 名前:デフォルトの名無しさん [2019/04/25(木) 06:51:51.77 ID:BgXoud3L.net] >>621 赤ベコ本の事ね。
635 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 09:50:10.40 ID:P7ID4Nfd.net] リーダブルコード要約 https://gist.github.com/AKB428/b8970cea987577ec93c2 初心に戻る良著 最近省略して書いてたから反省してる
636 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 11:34:43.93 ID:ap5qFTOn.net] > 読みやすい > if (length > 10 ) > > 読みにくい > if (10 < length) その主観は慣れによる、俺にとっては前者の方が読みにくい うちでは「物差しの向きに一貫性を持たせる」という指針でやっている その上で統一のため原則として「小さい方を左に書く」 よって >, >= を使わない if (10 <= length && length < 100) まぁRangeやRectでメソッドでの判定をすることも多く そういう場合は左がどうこうというのは無いが
637 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 11:52:49.98 ID:8pGnANx9.net] >>626 >if (10 <= length && length < 100) if (length >= 10 && length < 100) たまに、こう書くヤツが居るが殺意を覚える 一般的には可変値が左だと思う
638 名前:デフォルトの名無しさん [2019/04/25(木) 12:18:15.49 ID:NAVagSqc.net] 俺も可変値が左だと思うけど、統一された指針が既にあるならそれを貫いたほうがいい 一貫性はとても大事
639 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:32:09.35 ID:wpotMNKo.net] 小さい方を左に書く。 頭の中では、大小は、左右で考えているから 横書きと同じ感覚。 左上がスタート地点 洋画ではそう。左上に赤色を配置する。 そこが目線のスタート地点。 そこから時計回りに目線が、渦の中心へと向かっていく
640 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:41:16.64 ID:NQvr5Lbg.net] >>626 普通、言葉で考えると「lengthは10以上100未満?」て聞くじゃん。 「10は〜100は〜?」みたいな聞き方しないよね。 主語と動詞を逆にしちゃいけないと思う。 CやC++の頃は if (length == 10) としたかったところをコーディングミスで if (length = 10) にしてバグるのを防ぐ為に逆向きにしてた人を見受けたけど、いまどきはIDEがエラー出してくれるからねえ。
641 名前:デフォルトの名無しさん [2019/04/25(木) 12:49:03.99 ID:M77Bu+mz.net] IDEなくてもコンパイル時になんか出る。
642 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:54:48.89 ID:P7ID4Nfd.net] >630 なるほど、確かにバグ防止で逆向きにも一理ある 面白いこと考えるね
643 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 13:03:38.24 ID:myBoG5tn.net] >>632 ヨーダ記法って言うやつ
644 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 13:14:11.32 ID:wpotMNKo.net] C言語では、左に代入できないものを書いていた 比較演算子と間違えて、代入演算子を使うと、コンパイルエラー
645 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 13:15:44.93 ID:D7t01tqT.net] ヨーダ記法が可読性低いってのは散々言われてる 結局流行ってないしやらなくていい
646 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 13:44:40.50 ID:nzEkPIBs.net] 老害ってことや
647 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 14:11:29.90 ID:MiLFxbr9.net] 老害にだけは成りたく無いと思ってました
648 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 14:21:07.30 ID:ap5qFTOn.net] >>630 > 言葉で考えると「lengthは10以上100未満?」て聞くじゃん なるほど、改めて思い起こすと言葉以上に図や式で考えているな そういう資料を読み書きすることが多いからかもしれないが 10 length 100 --|----^----------|-- 10 ≦ length < 100 他所のだけどイメージ https://i.imgur.com/d5iRSb2.jpg
649 名前:デフォルトの名無しさん [2019/04/25(木) 21:25:32.13 ID:BgXoud3L.net] kotlin day4 kotlinc, kotlinコマンドの-classpathオプションの使い方でハマった。 >kotlin -cp jsoup-1.11.3.jar JsoupKt error: could not find or load main class JsoupKt こちらが正解 kotlin -cp .:jsoup-1.11.3.jar JsoupKt なんか、変な仕様。そろそろbuild.gradleファイルの作り方を学ぶべきか?
650 名前:デフォルトの名無しさん [2019/04/25(木) 21:29:50.40 ID:BgXoud3L.net] あのぉー、Kotlinでスクレイピングしたいんですけど、 Jsoupがbest practice? https://github.com/jhy/jsoup 実は、Javaも初心者なので、Kotlinへのmigrationでヘトヘト!
651 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 22:45:02.30 ID:k8swiVaB.net] >>640 どんなサイトをスクレイピングしたいのかによるけど、javascriptをガンガン使ってるようなサイトならSeleniumが鉄板だと思うよ。 Jsoupでもjsを実行させられるらいしけど、とても辛いと聞いたことがある。基本的には静的なhtmlを扱うためのライブラリ。
652 名前:デフォルトの名無しさん [2019/04/26(金) 09:47:20.98 ID:MEdB7GvY.net] >>641 thx Kotlin day5 コマンドラインで、jsoupでスクレーピングするソースを作成できた。 昔を思い出して、実行にはMakefile作成して行った。 Makefile内で文字列操作(大文字小文字変換とか、文字列連結)とかできるかな? Makefileはこんな感じ! CC := kotlin CFLAGS1 := -cp jsoup-1.11.3.jar -include-runtime CFLAGS2 := -cp .:jsoup-1.11.3.jar SRC := jsoup all: go go: $(CC)c $(SRC).kt $(CFLAGS1) $(CC) $(CFLAGS2) JsoupKt ~
653 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 09:49:24.06 ID:an8vMEsm.net] >>642 makeが何かをわかっていたらそんな質問はしない
654 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 10:03:32.40 ID:3DaeQ571.net] >>641 Seleniumってテストツールだと思ってたが、そんな使い方があるのか。 目からうろこが1000枚くらい落ちた。
655 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 10:43:09.29 ID:v018QqLA.net] >>644 Selenium自体はテストとは無関係だよ、ただ用途としてテストツールと組み合わされることが多いだけ。 最近のサイトはReactとかで動的にガンガン組み立てられるからスクレイピングもSelenium使っておいた方が無難。
656 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 13:23:49.21 ID:A/WNBxWE.net] Ruby, Nokogiri, Selenium WebDriver を使えば? CSS Selector, XPath で、要素を指定する driver.execute_script で、JavaScript のソースコードも実行できる
657 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 14:28:56.17 ID:5b9msznW.net] Kotlin勉強してるって言ってるんだから別にRubyじゃなくていいだろ
658 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 14:34:22.95 ID:an8vMEsm.net] NokogiriでXPathとCSSセレクタ使うならべつにこっちでも同じだと思うよ
659 名前:デフォルトの名無しさん [2019/04/26(金) 17:19:57.29 ID:MEdB7GvY.net] JsoupはNokogiriと違ってXPathを使ってDOMの操作ができない。 けど、使い方はNokogiriとよく似てる。 Androidアプリにスクレイピング機能を実装したいので、Ruby使えば?は却下!
660 名前:デフォルトの名無しさん [2019/04/26(金) 17:21:05.67 ID:MEdB7GvY.net] ところでJsoupの名前の由来って何? Java soup = Javaのスープ 変な名前。
661 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 17:57:42.91 ID:TC/HkfSU
] [ここ壊れてます]
662 名前:.net mailto: いちいち聞かずに勉強しろと延々言われているのに守らないからそういうちぐはぐな恥を晒して支持を減らすことになる(君はすでに識別されている) どうせPythonのBeautifulSoupのことも知らないしタグスープという言葉も知らんのだろう …あ、後者は別に知らんでいいわ、知らない人が多いし正式な用語というわけでもないから [] [ここ壊れてます]
663 名前:デフォルトの名無しさん [2019/04/26(金) 18:12:21.37 ID:tgodpZ2Y.net] ごった煮
664 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 20:00:10.59 ID:ErNxnYz2.net] >>651 まあまあまぁまァ、落ち着けよ このスレのレベルはピンキリさ
665 名前:デフォルトの名無しさん [2019/04/26(金) 20:32:30.11 ID:MEdB7GvY.net] >>651 thx. That is originated in “soup HTML document up beautifully”, it seems.
666 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 21:06:34.41 ID:XuSZUgKR.net] 個人の試行錯誤の実況でスレが消費されてくより過疎ってた方がマシ
667 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 09:33:03.49 ID:2kV59Ab3.net] スレの消費はどうでもいいんだけど、試行錯誤の記録はqiitaなりブログなり自分で管理できるところに残しておいた方が後々良いと思うんだよね
668 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 09:47:43.31 ID:X+HWf3Sy.net] >>516 fragmentは再利用されるからlateinit var
669 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 08:51:45.05 ID:7421dKds.net] Google、Androidにおける「Kotlinファースト」強化を表明。Google I/O 2019 https://www.publickey1.jp/blog/19/googleandroidkotlingoogle_io_2019.html
670 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 09:08:00.50 ID:1o0ZoV2Z.net] >>658 わかったからFlutterで(を?)使えるようにしてくれ 現時点で構造的に対応超絶困難だ マテリアルデザインの普及にも役立つだろ
671 名前:デフォルトの名無しさん [2019/05/08(水) 19:13:02.95 ID:PdqlbBMH.net] kotlin day17、object式 クラスAをインターフェースBによって僅かに修正したクラスCのインスタンスが必要となった時に、サブクラスCを宣言せずにそのインスタンスabを生成できる。 ```kt open class A(x: Int) { public open val y: Int = x } interface B {...} val ab: A = object : A(1), B { override val y = 15 } ```
672 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 21:35:17.96 ID:1/kiWGBR.net] 前スレでも書いたがKotlin/JSに続く、Kotlin/Dartトランスパイラをだな・・ まぁやれるとしたらJB側だからリソース的に無理なんだけどな
673 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 00:39:13.38 ID:62rwCBNY.net] >>661 Flutterが目当てなら、必ずしもDartを介することはないのでは?
674 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 07:27:30.06 ID:bwcjejUH.net] どういう意味?
675 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 07:28:01.24 ID:bwcjejUH.net] ああ、ごめん分かったよく読んでなかった
676 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 07:49:34.83 ID:p+Gqts9i.net] >>662 少なくともDart Kernel binaryを生成出来ないとFlutterのホットリロードが使えない Kernel binaryの仕様はDart自体より安定してない https://flutter.dev/docs/development/tools/hot-reload https://mrale.ph/dartvm/ Flutterのクロスプラットフォーム性や開発時の機能などの結構な割合を Dart自体の機能により実現しているのでその辺の仕組みに乗っかれないと逆に厳しいと思うぞ
677 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 09:45:14.22 ID:Gvcl+e3N.net] flutterも最初素晴らしいと触ってたけど、dartの糞さに嫌気さしてさわるのやめたな。つか、flutterは致命的な問題もあるしな
678 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 13:10:55.61 ID:fgBYrKh8.net] kotlinのgraphqlライブラリ微妙だからscalaのsangria使えないかなー sangriaどころかscala触ったことないけど
679 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 15:52:18.57 ID:drrQ8Z5A.net] >>666 どんな問題?
680 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 20:53:25.89 ID:Gvcl+e3N.net] モバイルアプリはメモリ不足によってプロセスキルされ、キル前の状態に戻すために復元の仕組みが用意されてるがflutterではどうすればいいの?問題。 例えばandroidならonSaveInstanceStateがあるが、flutterではどうすれば? flutterは1つのActivity上でページ遷移してるが、ページ毎に状態保存、復元は? https://github.com/flutter/flutter/issues/6827
681 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 20:58:48.44 ID:Gvcl+e3N.net] モバイルアプリ開発したことあれば必ずプロセスキルの問題に出くわすと思うんだがflutterの開発チームはこれ放置してるという。普通flutterの設計段階でこの事考慮すべきだが全く考慮してなさそうというあほっぷり。
682 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 23:07:11.65 ID:p+GF1Adw.net] 地方都市だけど最近Android本が本屋に数冊しかない 他言語は田舎のわりにはけっこう置いてるんだけど Kotlin移行の影響なのかも
683 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 00:21:35.88 ID:JD2pFQw6.net] >>670 flutter詳しくは知らんが、もしそれが本当ならモバイル用途としてはたしかに致命的欠陥だな 後付けでflutterのフレームワークの中で強引に全部保存復帰するようにするから気にするな、みたいなこと 考えてるとしたらヤバイ そういうことができないモバイルだからステートの保存と復帰はアプリに投げるように作ってあるのに・・
684 名前:デフォルトの名無しさん [2019/05/10(金) 03:07:44.06 ID:+vHN15fT.net] >>671 Amazon使いなさい。
685 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 10:49:17.54 ID:pdzLc3IS.net] Kotlin/Everywhere https://blog.jetbrains.com/kotlin/2019/05/kotlin-is-everywhere-join-the-global-event-series/ ・イベントは主に5月のGoogle I/Oと12月上旬のKotlinConfの間に行われる ・イベント予定は以下の地図に表示される(今後追加されていく) https://events.withgoogle.com/kotlin-everywhere/
686 名前:デフォルトの名無しさん [2019/05/10(金) 16:19:08.62 ID:54LLglmL.net] >>671 同志 Android関連本、俺のところも本屋には少ない。 大阪に隣接の県の県庁所在地なんだけど。 大阪のデカイ本屋へは往復2,000円掛かっちまう。
687 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:41:51.78 ID:iG629wI3.net] >>675 奈良市かな?
688 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 21:37:10.49 ID:shkkgOQu.net] >>675 Kindleおすすめ マルチディスプレイで勉強捗る
689 名前:デフォルトの名無しさん [2019/05/10(金) 21:56:19.96 ID:54LLglmL.net] >>677 Kindleも試したけど、俺、紙の本派なんだよねぇ。 書き込みできるのが紙の本がありがたい。 KindleのためにiPad Pro 12inchも買ったけどやっぱり紙が良いんだよねぇ。 俺って、変かなぁ。
690 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 22:08:26.51 ID:3MWdvG+0.net] 紙の解像度にはまだまだ電子書籍は敵わない 紙の優位性はあるから書見台(ブックスタンド)とか使え、そしてやっぱイマイチだってしまい込むんだ 印刷したデータは死んだデータだってのは、まあ、その通りなんだけども
691 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 23:11:37.34 ID:msYu7Wbl.net] ktorでhttpsやろうとしてサンプル試してみたけどなんかダメだな
692 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 01:07:57.25 ID:i9FGZXUp.net] >>673 Amazonも楽天も使ってるよ ただ本屋に置いてない状況を見ると Android開発の人気無くなってきてるのかなと思って 本屋は内容確認できる長所あるし もう少し置いてほしいところ
693 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 06:20:49.01 ID:J+BhWrkd.net] >>680 オレオレ認証局だけど出来たよ。Let'sEncryptのところでなければ答えられるかも。 >>681 Android開発者が紙の本からKindleに移住している可能性も。 といいつつ自分はPC本は紙派。読んだ後確認する時にこのあたりかなとパラパラとめくりながら探せるので。
694 名前:デフォルトの名無しさん [2019/05/11(土) 07:17:10.19 ID:g6fo75+g.net] [改訂新版]Android SDKポケットリファレンス これのKindle版って、サンプルコード見やすいですか? [改訂新版]Swiftポケットリファレンス、こいつのKindle版掲載のサンプルコードは、文字の拡大縮小も可能で、Goodなんだけど。 Kindle Paper Whiteで閲覧します。iPad Pro 12inchもあるけど。
695 名前:デフォルトの名無しさん [2019/05/11(土) 07:18:23.32 ID:g6fo75+g.net] ちなみに、お試し版をPaperwhiteで見てみたけど、お試し版は最初の数ページ、しかもサンプルコードが無いページしか、試し読みできませんでした。
696 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 07:25:20.42 ID:BxWOidMY.net] kindleはコピペできないからPDF版のあるやつは、そっちを買うようにしてる。
697 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 07:33:21.30 ID:x9oQSWJz.net] その本つてKotlin対応してなかった気がするけど Javaでも良いの?
698 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 09:37:44.97 ID:Brt5xi0Z.net] ここが過疎ってるような気がしてslack見てみたけどそっちも過疎ってるのかな。 slackの使い方間違えてるのかな。。
699 名前:デフォルトの名無しさん [2019/05/13(月) 10:33:56.13 ID:4rccaZT+.net] >>686 JaveでもOKっす。
700 名前:デフォルトの名無しさん [2019/05/14(火) 02:33:08.66 ID:3xJ0OqNt.net] forEach は Iterable<T> と Iterator<T> にあるのに forEachIndexed は Iterable<T> にあっても Iterator<T> にないのは何故か?
701 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 07:44:27.90 ID:DWuOpB8T.net] 昔ケンカしたから
702 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 07:49:34.32 ID:rV66FunX.net] Iteratorは拡張関数が4つしかなくインターフェース変換を除くと実質2つ なのでむしろforEachとwithIndexだけが特別扱いのようなもの
703 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 10:12:17.90 ID:jvXWFm+P.net] うんことりん
704 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 12:25:52.36 ID:zeev4Evh.net] Ruby では、クラスに、each メソッドが定義されていれば、 include Enumerable で、map, each_line などの便利な機能を使える(Mix-in) Enumerableのラッパーが、Enumerator で、 eachを定義していないクラス、例えば、String クラスに、Enumerable の機能を追加する Enumerableは内部イテレータで、Enumeratorは外部イテレータ。 外部イテレータは、繰り返しの進行を制御できる enum = "a\nb".to_enum( :each_line ) # Enumerator enum.with_index do | line, idx | # 1行ずつ処理する p [ idx, line ] end 出力 [0, "a\n"] [1, "b"] with_index は、Enumeratorクラスのメソッドで、 map に、インデックスを渡すことも出来る p enum.with_index.map { | line, idx | "#{ idx } : #{ line.swapcase }" } #=> ["0 : A\n", "1 : B"]
705 名前:デフォルトの名無しさん [2019/05/14(火) 12:36:39.21 ID:eEvxk7yL.net] >>691 あー。そうか。 まあ Iterable は中に Iterator 返すやつ一つ作ってしまえば良いだけなので object で作ってそのまま forEachOndexed で使えば良いだけなのだがなんというか面倒。 あ、自分でそういう拡張関数作ればいいだけか。てか作っておいて欲しかっな。
706 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 12:45:32.34 ID:BT1Jap6O.net] >>689 イテレーターは列挙するものだからインデックスと直結しないのでは n件のリストがあったとして、それをイテラブルとして回すときのインデックスはほぼ自明だけど そいつを3から始めるイテレーターや逆順のイテレーター 3歩進んで2歩下がるイテレーターのインデックスというのは ルールを決めてしまえばいいんだけど本質的な属性ではないと思う
707 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 13:05:37.50 ID:4HZJg8yK.net] 拡張関数ってグローバルだよな どこに書けばいいか迷ったあげく使うクラスと同じファイルに書いてしまう