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/
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] 拡張関数ってグローバルだよな どこに書けばいいか迷ったあげく使うクラスと同じファイルに書いてしまう
708 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 16:08:52.35 ID:o/ZzSQAi.net] 拡張関数めっちゃ便利だけど、用法用量を守らないととても危険だよな
709 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 17:29:04.99 ID:IaXs534s.net] 拡張関数の定義を interface の中にすれば、使用可能範囲をコントロールできる
710 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 18:31:50.97 ID:hlTwFz7+.net] Kotlin用ゲームエンジンらしい https://korge.soywiz.com
711 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 19:29:46.17 ID:o/ZzSQAi.net] >>698 知らなかった
712 名前:デフォルトの名無しさん [2019/05/15(水) 12:44:33.69 ID:laKGlnoI.net] どのみち、IDEがないと読み難い言語だから、Extensionはさして気にならない。 プロパティアクセスのせいで、知らず知らずにシャドウしてしまう方がずっと気になる。
713 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 18:46:37.64 ID:ctMRzncm.net] ts2ktって放置されているっぽいけど、今でも使いものになるの?
714 名前:デフォルトの名無しさん [2019/05/16(木) 19:36:52.04 ID:9YitK9mS.net] >>699 Android以外はちゃんと動くんかな・・・・?
715 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 22:06:49.39 ID:5qYZVYSF.net] >>698 拡張した本人しか認識できないのもができるからな。
716 名前:デフォルトの名無しさん [2019/05/18(土) 09:09:23.16 ID:cPFyVnxJ.net] >>699 興味あるわこれ 今やってるの終わったら使ってみようと思うんだけど誰か試してみた?
717 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 12:51:09.41 ID:JYN3Apin.net] 社内の持ち回りの勉強会で、vimでKotlin開発する環境を気合いで整える、という発表をしたら大受けしたわ もちろんネタとしてな。絶対idea使った方がいいぞ。
718 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 13:41:12.48 ID:1MmHbsk/.net] 無駄なことに時間使ってんな
719 名前:デフォルトの名無しさん [2019/05/18(土) 16:19:18.33 ID:IkSg3I69.net] やらないと後で「おまえやるって言ったよな」と責められるw
720 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 22:59:21.42 ID:rrFT3N/c.net] kotlinでandroid開発の記事載ってる雑誌ないですか ネットや書籍から情報得るしかない?
721 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 01:39:23.54 ID:jp3Kdatt.net] 本とかもう時代遅れ
722 名前:デフォルトの名無しさん [2019/05/19(日) 05:37:35.31 ID:+tXYNnhs.net] なぜ雑誌?本ならあるのだが。
723 名前:デフォルトの名無しさん [2019/05/19(日) 16:40:35.01 ID:+tXYNnhs.net] そもそも今ではプログラミングについての雑誌が少ないよね。 Software Design か日経ソフトウェアぐらいなんじゃないか? ハードウェア寄りな Interface みたいなのもあるが。
724 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 18:23:21.54 ID:fqpGXrMP.net] >>710 そんなこたぁ無い
725 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 19:18:58.24 ID:Ma/nTg+4.net] 本はディスプレイ以外に開けるから便利だよね
726 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 19:40:59.75 ID:jp3Kdatt.net] 掌田津耶乃でも読んでろカス
727 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 20:36:47.66 ID:fqpGXrMP.net] つやのちゃん知ってるんだw
728 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 00:21:44.28 ID:pT4TPZWt.net] 断片的なのはネットで調べればいいが、 体系的に全体をまんべんなく知りたいってときは、 やっぱり書籍が適してると思う。
729 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 06:11:32.77 ID:BYsItzt6.net] 書籍もガッツリ読むなら紙の本がいいし、写経するなら電子書籍の方がいいし 選択肢が増えた分だけむしろ選ぶのが大変になってるな
730 名前:デフォルトの名無しさん [2019/05/20(月) 11:03:48.81 ID:+QyKHsoF.net] SoftwareDesignは最近はもう読んでない バックナンバーも大量に棄てた 川上さんの連載のだけ残してる
731 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 11:35:05.49 ID:MLZoEYDf.net] 雑誌のいいとこは判型が大きいことだなw ただのブログよりは読者層を意識してる率が高くて、Web記事よりはまとまりと終わりがある可能性が高いという感じか なにの情報を欲しいと思ってるのかに依存する気がするぞ
732 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 11:43:30.49 ID:3K6cHyBG.net] 雑誌の良いところは、本よりも情報の鮮度が高いってとこだね。
733 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 15:22:51.14 ID:poyp5Kqc.net] 日経ソフトウェアは、素人向け SoftwareDesign ぐらいか。 WEB+DB は、システム環境・プログラマーが半々ぐらい 他は、日経Linux は、ラズパイが多い フレームワークの巨匠と言えば、掌田津耶乃・山田祥寛 山田の講習会は、数万円とか。 掌田なら、十万円ぐらい行きそうw
734 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 16:58:22.74 ID:E7kxjeRz.net] つやのって読む価値のない入門書しか出してないだろ
735 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 20:22:34.07 ID:Nm/yOzhN.net] 最近の日経ソフトウェアはPython雑誌みたいになってる Kotlinの記事なんて全く載らない
736 名前:デフォルトの名無しさん [2019/05/20(月) 20:48:41.91 ID:oKvxv21R.net] そういやPython大ブームだね。 機械学習関係で火が着いた感じか。
737 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 21:27:41.17 ID:QYS7YbVl.net] 数年後に始まる小学校でのプログラミング授業もPython採用と予想。
738 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 21:33:58.54 ID:TjPZT1E7.net] 授業は基本マイクラを使うぞ
739 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 22:00:59.30 ID:9o82qJOc.net] kotlinのおすすめ無料学習教材は?
740 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 22:10:44.54 ID:0DZMUBSm.net] 勧めるようなものは特にない
741 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 08:28:21.83 ID:2xcSjans.net] なんか公式のチュートリアルみたいなのなかったっけ
742 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 08:31:57.13 ID:qls//8Wz.net] おすすめかどうかを意識しろ あるかどうかではなく、おすすめかどうかだ 検索すりゃこのご時世英語含めてたくさん出てくる そんなの見りゃわかる おすすめできるものかどうかがいちばん大事
743 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 10:08:36.16 ID:x7pfOsc7.net] ただで教える側に求めすぎだろw
744 名前:デフォルトの名無しさん [2019/05/21(火) 10:10:30.25 ID:YlTjoOUk.net] >>723 NGに入れろ スッキリ ▼ ▲
745 名前:デフォルトの名無しさん [2019/05/21(火) 10:56:17.04 ID:KjOgf3b2.net] kotlin使った事無くて勉強中なんですが null安全は通信で届いたオブジェクトについてどう働きますか? あるいはデシリアライズされたオブジェクトについて そこでもnull安全ですか?
746 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 11:04:08.23 ID:x7pfOsc7.net] 当然どんなオブジェクトであれKotlinで書かれている限りnull安全は機能するけど、君はそもそもnull安全を誤解してそうな予感がする
747 名前:デフォルトの名無しさん [2019/05/21(火) 11:11:41.76 ID:KjOgf3b2.net] 検索すると、null不可な変数にnullを代入できないこと、とあります。 そうすると通信で受信したオブジェクト等はどうなるのかなと。 この理解は間違っていますか?
748 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 11:39:29.09 ID:c7g0QxSl.net] どこまで「使ったことない」かにもよるんだが ・nullかどうかの条件分岐をクリアした変数 ・nullかどうかの条件分岐をまだやってない変数 の2つがあるだけだと思っていい 外部から取得したデータがあったとして、nullチェックをまだしていないならnullableだ どこかで誰かが(静的文法解析上)nullではないという条件分岐を通したあとならそれはnonnull どこかで誰かがその後にnullになるかもしれない処理を通したらnullableに戻る
749 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 12:29:35.90 ID:ZAINLMmO.net] >>736 文字列とか通信データから、新たなオブジェクトを構築するのでしょ? 構築できたら、null ではないし、 データがおかしくて構築できなかったら、エラー!
750 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 12:40:36.99 ID:sr6+MIRN.net] 当然nonnull出ない変数ににnullをぶち込んだらエラーになる
751 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 13:55:21.57 ID:2xcSjans.net] >>736 nullを入れられない型なのにnullを入れようとしたらその時点でオブジェクトを生成できずにエラー なので、json文字列を受け取ってオブジェクトを生成する部分で要件に合わせて適宜いい感じに処理する必要がある
752 名前:デフォルトの名無しさん [2019/05/21(火) 14:53:46.84 ID:BVi2WQ22.net] >>736 試してみればわかると思うが、nillableな型にnull入れてObjectOutputStreamで書いた後でnullableでなくしてコンパイルしなおしてからObjectInputStreamで読もうとするとInvalidClassExceptionが出る。
753 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 15:17:02.88 ID:RVxsm+ja.net] kotlin使ったことないって奴向けの説明ではないな