JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1531818027/
Kotlin 5
■ このスレッドは過去ログ倉庫に格納されています
2018/12/08(土) 20:29:41.41ID:oXOQORcd
601デフォルトの名無しさん
2019/04/24(水) 13:28:15.20ID:CQvKnKTI >>577だけどこれ無理っぽいな
602デフォルトの名無しさん
2019/04/24(水) 14:01:42.54ID:CTi91KC0 >>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 }
勧めるものじゃないけど、一応疑似的にならば
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 }
603デフォルトの名無しさん
2019/04/24(水) 14:14:45.53ID:ZqBzQREh >>599
thx
thx
604デフォルトの名無しさん
2019/04/24(水) 14:19:09.62ID:ZqBzQREh605デフォルトの名無しさん
2019/04/24(水) 14:22:08.49ID:ZqBzQREh >>604
fun mainの外でthisは何を指してるのだ?
fun mainの外でthisは何を指してるのだ?
606デフォルトの名無しさん
2019/04/24(水) 14:28:29.52ID:ZqBzQREh >>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) {}
}
>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) {}
}
607デフォルトの名無しさん
2019/04/24(水) 14:55:22.29ID:CTi91KC0 >>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対象になって消える
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対象になって消える
608デフォルトの名無しさん
2019/04/24(水) 15:34:34.20ID:ZqBzQREh609デフォルトの名無しさん
2019/04/24(水) 15:49:00.84ID:ZqBzQREh >>608
特異メソッドとは違うみたい。
Rubyのクラスの再オープン、オープンクラス、monkey patching
とか言う邪悪なテクみたい。
Dateクラスに本来備わってないyesterday, tomorrowとかいうpropertyを追加したりできる。
特異メソッドとは違うみたい。
Rubyのクラスの再オープン、オープンクラス、monkey patching
とか言う邪悪なテクみたい。
Dateクラスに本来備わってないyesterday, tomorrowとかいうpropertyを追加したりできる。
610デフォルトの名無しさん
2019/04/24(水) 15:52:13.17ID:ZqBzQREh うぅーん。
top level でthisが何を指しているのか?
よく解らん。
top level でthisが何を指しているのか?
よく解らん。
611デフォルトの名無しさん
2019/04/24(水) 15:52:31.03ID:CTi91KC0 連投せずググりなさい
612デフォルトの名無しさん
2019/04/24(水) 15:56:37.35ID:ZqBzQREh >>610
きっとthisは、nameプロパティーが呼ばれるまで定まらなくて、nameプロパティーのレシーバー(a1, a2)の事なんだ。
と言う事にしておこう。
拡張関数、拡張プロパティー、が必要になった時のメモ
Kotlinの拡張関数と拡張プロパティについて
https://qiita.com/RyotaMurohoshi/items/4b958af1d23da6d91a61
きっとthisは、nameプロパティーが呼ばれるまで定まらなくて、nameプロパティーのレシーバー(a1, a2)の事なんだ。
と言う事にしておこう。
拡張関数、拡張プロパティー、が必要になった時のメモ
Kotlinの拡張関数と拡張プロパティについて
https://qiita.com/RyotaMurohoshi/items/4b958af1d23da6d91a61
613デフォルトの名無しさん
2019/04/24(水) 17:00:48.57ID:HA70GdMc >ID:ZqBzQREh
日記は自分のブログでやってくれ
日記は自分のブログでやってくれ
614デフォルトの名無しさん
2019/04/24(水) 17:06:36.37ID:ymPUK1bE 散々言われてるみたいだけどまずとりあえずググる習慣をつけなさい
君はしなくていい回り道が多すぎる
君はしなくていい回り道が多すぎる
615デフォルトの名無しさん
2019/04/24(水) 20:05:15.35ID:CQvKnKTI616デフォルトの名無しさん
2019/04/24(水) 20:26:09.12ID:ZqBzQREh617デフォルトの名無しさん
2019/04/24(水) 20:28:11.81ID:Hf91oH+Q >>614
君も謝る羽目になるよ
君も謝る羽目になるよ
618デフォルトの名無しさん
2019/04/24(水) 20:45:23.71ID:ZqBzQREh なんと、キーワードになっている識別子もエスケープ可能!
例:isと言う名前のメソッドも呼び出せる。
foo.`is`(bar)
こんな感じ!
例:isと言う名前のメソッドも呼び出せる。
foo.`is`(bar)
こんな感じ!
619デフォルトの名無しさん
2019/04/24(水) 20:49:33.98ID:ZqBzQREh Qiitaの30分で…の記事、走り読みした。約8hr位要した。
Vim内でチョコチョコ試運転しながら、走り読み。
お疲れ様でした。▶俺
Vim内でチョコチョコ試運転しながら、走り読み。
お疲れ様でした。▶俺
620デフォルトの名無しさん
2019/04/24(水) 20:52:35.15ID:ZqBzQREh レシーバー付き関数リテラル、がよく解らんかった。
クラス移譲、プロパティー移譲
byとか使う奴。こんなのSwiftには無かったなぁ。
クラス移譲、プロパティー移譲
byとか使う奴。こんなのSwiftには無かったなぁ。
621デフォルトの名無しさん
2019/04/24(水) 21:03:15.80ID:kFXKi6KY622デフォルトの名無しさん
2019/04/24(水) 21:13:18.43ID:kFXKi6KY Kotlin は、swift とは似ていない
Kotlin は、Groovy を静的にしたもの。
つまり、Ruby, JavaScript の系統
オブジェクト指向・関数型のミックス
Kotlin は、Groovy を静的にしたもの。
つまり、Ruby, JavaScript の系統
オブジェクト指向・関数型のミックス
623デフォルトの名無しさん
2019/04/24(水) 22:03:35.37ID:JvprRVGM Swift程の糞はない
624デフォルトの名無しさん
2019/04/25(木) 06:51:51.77ID:BgXoud3L >>621
赤ベコ本の事ね。
赤ベコ本の事ね。
625デフォルトの名無しさん
2019/04/25(木) 09:50:10.40ID:P7ID4Nfd626デフォルトの名無しさん
2019/04/25(木) 11:34:43.93ID:ap5qFTOn > 読みやすい
> if (length > 10 )
>
> 読みにくい
> if (10 < length)
その主観は慣れによる、俺にとっては前者の方が読みにくい
うちでは「物差しの向きに一貫性を持たせる」という指針でやっている
その上で統一のため原則として「小さい方を左に書く」
よって >, >= を使わない
if (10 <= length && length < 100)
まぁRangeやRectでメソッドでの判定をすることも多く
そういう場合は左がどうこうというのは無いが
> if (length > 10 )
>
> 読みにくい
> if (10 < length)
その主観は慣れによる、俺にとっては前者の方が読みにくい
うちでは「物差しの向きに一貫性を持たせる」という指針でやっている
その上で統一のため原則として「小さい方を左に書く」
よって >, >= を使わない
if (10 <= length && length < 100)
まぁRangeやRectでメソッドでの判定をすることも多く
そういう場合は左がどうこうというのは無いが
627デフォルトの名無しさん
2019/04/25(木) 11:52:49.98ID:8pGnANx9 >>626
>if (10 <= length && length < 100)
if (length >= 10 && length < 100)
たまに、こう書くヤツが居るが殺意を覚える
一般的には可変値が左だと思う
>if (10 <= length && length < 100)
if (length >= 10 && length < 100)
たまに、こう書くヤツが居るが殺意を覚える
一般的には可変値が左だと思う
628デフォルトの名無しさん
2019/04/25(木) 12:18:15.49ID:NAVagSqc 俺も可変値が左だと思うけど、統一された指針が既にあるならそれを貫いたほうがいい
一貫性はとても大事
一貫性はとても大事
629デフォルトの名無しさん
2019/04/25(木) 12:32:09.35ID:wpotMNKo 小さい方を左に書く。
頭の中では、大小は、左右で考えているから
横書きと同じ感覚。
左上がスタート地点
洋画ではそう。左上に赤色を配置する。
そこが目線のスタート地点。
そこから時計回りに目線が、渦の中心へと向かっていく
頭の中では、大小は、左右で考えているから
横書きと同じ感覚。
左上がスタート地点
洋画ではそう。左上に赤色を配置する。
そこが目線のスタート地点。
そこから時計回りに目線が、渦の中心へと向かっていく
630デフォルトの名無しさん
2019/04/25(木) 12:41:16.64ID:NQvr5Lbg >>626
普通、言葉で考えると「lengthは10以上100未満?」て聞くじゃん。
「10は〜100は〜?」みたいな聞き方しないよね。
主語と動詞を逆にしちゃいけないと思う。
CやC++の頃は
if (length == 10) としたかったところをコーディングミスで
if (length = 10) にしてバグるのを防ぐ為に逆向きにしてた人を見受けたけど、いまどきはIDEがエラー出してくれるからねえ。
普通、言葉で考えると「lengthは10以上100未満?」て聞くじゃん。
「10は〜100は〜?」みたいな聞き方しないよね。
主語と動詞を逆にしちゃいけないと思う。
CやC++の頃は
if (length == 10) としたかったところをコーディングミスで
if (length = 10) にしてバグるのを防ぐ為に逆向きにしてた人を見受けたけど、いまどきはIDEがエラー出してくれるからねえ。
631デフォルトの名無しさん
2019/04/25(木) 12:49:03.99ID:M77Bu+mz IDEなくてもコンパイル時になんか出る。
632デフォルトの名無しさん
2019/04/25(木) 12:54:48.89ID:P7ID4Nfd >630
なるほど、確かにバグ防止で逆向きにも一理ある
面白いこと考えるね
なるほど、確かにバグ防止で逆向きにも一理ある
面白いこと考えるね
633デフォルトの名無しさん
2019/04/25(木) 13:03:38.24ID:myBoG5tn >>632
ヨーダ記法って言うやつ
ヨーダ記法って言うやつ
634デフォルトの名無しさん
2019/04/25(木) 13:14:11.32ID:wpotMNKo C言語では、左に代入できないものを書いていた
比較演算子と間違えて、代入演算子を使うと、コンパイルエラー
比較演算子と間違えて、代入演算子を使うと、コンパイルエラー
635デフォルトの名無しさん
2019/04/25(木) 13:15:44.93ID:D7t01tqT ヨーダ記法が可読性低いってのは散々言われてる
結局流行ってないしやらなくていい
結局流行ってないしやらなくていい
636デフォルトの名無しさん
2019/04/25(木) 13:44:40.50ID:nzEkPIBs 老害ってことや
637デフォルトの名無しさん
2019/04/25(木) 14:11:29.90ID:MiLFxbr9 老害にだけは成りたく無いと思ってました
638デフォルトの名無しさん
2019/04/25(木) 14:21:07.30ID:ap5qFTOn >>630
> 言葉で考えると「lengthは10以上100未満?」て聞くじゃん
なるほど、改めて思い起こすと言葉以上に図や式で考えているな
そういう資料を読み書きすることが多いからかもしれないが
10 length 100
--|----^----------|--
10 ≦ length < 100
他所のだけどイメージ
https://i.imgur.com/d5iRSb2.jpg
> 言葉で考えると「lengthは10以上100未満?」て聞くじゃん
なるほど、改めて思い起こすと言葉以上に図や式で考えているな
そういう資料を読み書きすることが多いからかもしれないが
10 length 100
--|----^----------|--
10 ≦ length < 100
他所のだけどイメージ
https://i.imgur.com/d5iRSb2.jpg
639デフォルトの名無しさん
2019/04/25(木) 21:25:32.13ID:BgXoud3L 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ファイルの作り方を学ぶべきか?
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ファイルの作り方を学ぶべきか?
640デフォルトの名無しさん
2019/04/25(木) 21:29:50.40ID:BgXoud3L あのぉー、Kotlinでスクレイピングしたいんですけど、
Jsoupがbest practice?
https://github.com/jhy/jsoup
実は、Javaも初心者なので、Kotlinへのmigrationでヘトヘト!
Jsoupがbest practice?
https://github.com/jhy/jsoup
実は、Javaも初心者なので、Kotlinへのmigrationでヘトヘト!
641デフォルトの名無しさん
2019/04/25(木) 22:45:02.30ID:k8swiVaB >>640
どんなサイトをスクレイピングしたいのかによるけど、javascriptをガンガン使ってるようなサイトならSeleniumが鉄板だと思うよ。
Jsoupでもjsを実行させられるらいしけど、とても辛いと聞いたことがある。基本的には静的なhtmlを扱うためのライブラリ。
どんなサイトをスクレイピングしたいのかによるけど、javascriptをガンガン使ってるようなサイトならSeleniumが鉄板だと思うよ。
Jsoupでもjsを実行させられるらいしけど、とても辛いと聞いたことがある。基本的には静的なhtmlを扱うためのライブラリ。
642デフォルトの名無しさん
2019/04/26(金) 09:47:20.98ID:MEdB7GvY >>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
~
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
~
643デフォルトの名無しさん
2019/04/26(金) 09:49:24.06ID:an8vMEsm >>642
makeが何かをわかっていたらそんな質問はしない
makeが何かをわかっていたらそんな質問はしない
644デフォルトの名無しさん
2019/04/26(金) 10:03:32.40ID:3DaeQ571645デフォルトの名無しさん
2019/04/26(金) 10:43:09.29ID:v018QqLA >>644
Selenium自体はテストとは無関係だよ、ただ用途としてテストツールと組み合わされることが多いだけ。
最近のサイトはReactとかで動的にガンガン組み立てられるからスクレイピングもSelenium使っておいた方が無難。
Selenium自体はテストとは無関係だよ、ただ用途としてテストツールと組み合わされることが多いだけ。
最近のサイトはReactとかで動的にガンガン組み立てられるからスクレイピングもSelenium使っておいた方が無難。
646デフォルトの名無しさん
2019/04/26(金) 13:23:49.21ID:A/WNBxWE Ruby, Nokogiri, Selenium WebDriver を使えば?
CSS Selector, XPath で、要素を指定する
driver.execute_script で、JavaScript のソースコードも実行できる
CSS Selector, XPath で、要素を指定する
driver.execute_script で、JavaScript のソースコードも実行できる
647デフォルトの名無しさん
2019/04/26(金) 14:28:56.17ID:5b9msznW Kotlin勉強してるって言ってるんだから別にRubyじゃなくていいだろ
648デフォルトの名無しさん
2019/04/26(金) 14:34:22.95ID:an8vMEsm NokogiriでXPathとCSSセレクタ使うならべつにこっちでも同じだと思うよ
649デフォルトの名無しさん
2019/04/26(金) 17:19:57.29ID:MEdB7GvY JsoupはNokogiriと違ってXPathを使ってDOMの操作ができない。
けど、使い方はNokogiriとよく似てる。
Androidアプリにスクレイピング機能を実装したいので、Ruby使えば?は却下!
けど、使い方はNokogiriとよく似てる。
Androidアプリにスクレイピング機能を実装したいので、Ruby使えば?は却下!
650デフォルトの名無しさん
2019/04/26(金) 17:21:05.67ID:MEdB7GvY ところでJsoupの名前の由来って何?
Java soup = Javaのスープ
変な名前。
Java soup = Javaのスープ
変な名前。
651デフォルトの名無しさん
2019/04/26(金) 17:57:42.91ID:TC/HkfSU いちいち聞かずに勉強しろと延々言われているのに守らないからそういうちぐはぐな恥を晒して支持を減らすことになる(君はすでに識別されている)
どうせPythonのBeautifulSoupのことも知らないしタグスープという言葉も知らんのだろう
…あ、後者は別に知らんでいいわ、知らない人が多いし正式な用語というわけでもないから
どうせPythonのBeautifulSoupのことも知らないしタグスープという言葉も知らんのだろう
…あ、後者は別に知らんでいいわ、知らない人が多いし正式な用語というわけでもないから
652デフォルトの名無しさん
2019/04/26(金) 18:12:21.37ID:tgodpZ2Y ごった煮
653デフォルトの名無しさん
2019/04/26(金) 20:00:10.59ID:ErNxnYz2654デフォルトの名無しさん
2019/04/26(金) 20:32:30.11ID:MEdB7GvY655デフォルトの名無しさん
2019/04/26(金) 21:06:34.41ID:XuSZUgKR 個人の試行錯誤の実況でスレが消費されてくより過疎ってた方がマシ
656デフォルトの名無しさん
2019/04/27(土) 09:33:03.49ID:2kV59Ab3 スレの消費はどうでもいいんだけど、試行錯誤の記録はqiitaなりブログなり自分で管理できるところに残しておいた方が後々良いと思うんだよね
657デフォルトの名無しさん
2019/04/27(土) 09:47:43.31ID:X+HWf3Sy >>516
fragmentは再利用されるからlateinit var
fragmentは再利用されるからlateinit var
658デフォルトの名無しさん
2019/05/08(水) 08:51:45.05ID:7421dKds Google、Androidにおける「Kotlinファースト」強化を表明。Google I/O 2019
https://www.publickey1.jp/blog/19/googleandroidkotlingoogle_io_2019.html
https://www.publickey1.jp/blog/19/googleandroidkotlingoogle_io_2019.html
659デフォルトの名無しさん
2019/05/08(水) 09:08:00.50ID:1o0ZoV2Z660デフォルトの名無しさん
2019/05/08(水) 19:13:02.95ID:PdqlbBMH 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
}
```
クラス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
}
```
661デフォルトの名無しさん
2019/05/08(水) 21:35:17.96ID:1/kiWGBR 前スレでも書いたがKotlin/JSに続く、Kotlin/Dartトランスパイラをだな・・
まぁやれるとしたらJB側だからリソース的に無理なんだけどな
まぁやれるとしたらJB側だからリソース的に無理なんだけどな
662デフォルトの名無しさん
2019/05/09(木) 00:39:13.38ID:62rwCBNY >>661
Flutterが目当てなら、必ずしもDartを介することはないのでは?
Flutterが目当てなら、必ずしもDartを介することはないのでは?
663デフォルトの名無しさん
2019/05/09(木) 07:27:30.06ID:bwcjejUH どういう意味?
664デフォルトの名無しさん
2019/05/09(木) 07:28:01.24ID:bwcjejUH ああ、ごめん分かったよく読んでなかった
665デフォルトの名無しさん
2019/05/09(木) 07:49:34.83ID:p+Gqts9i >>662
少なくともDart Kernel binaryを生成出来ないとFlutterのホットリロードが使えない
Kernel binaryの仕様はDart自体より安定してない
https://flutter.dev/docs/development/tools/hot-reload
https://mrale.ph/dartvm/
Flutterのクロスプラットフォーム性や開発時の機能などの結構な割合を
Dart自体の機能により実現しているのでその辺の仕組みに乗っかれないと逆に厳しいと思うぞ
少なくともDart Kernel binaryを生成出来ないとFlutterのホットリロードが使えない
Kernel binaryの仕様はDart自体より安定してない
https://flutter.dev/docs/development/tools/hot-reload
https://mrale.ph/dartvm/
Flutterのクロスプラットフォーム性や開発時の機能などの結構な割合を
Dart自体の機能により実現しているのでその辺の仕組みに乗っかれないと逆に厳しいと思うぞ
666デフォルトの名無しさん
2019/05/09(木) 09:45:14.22ID:Gvcl+e3N flutterも最初素晴らしいと触ってたけど、dartの糞さに嫌気さしてさわるのやめたな。つか、flutterは致命的な問題もあるしな
667デフォルトの名無しさん
2019/05/09(木) 13:10:55.61ID:fgBYrKh8 kotlinのgraphqlライブラリ微妙だからscalaのsangria使えないかなー
sangriaどころかscala触ったことないけど
sangriaどころかscala触ったことないけど
668デフォルトの名無しさん
2019/05/09(木) 15:52:18.57ID:drrQ8Z5A >>666
どんな問題?
どんな問題?
669デフォルトの名無しさん
2019/05/09(木) 20:53:25.89ID:Gvcl+e3N モバイルアプリはメモリ不足によってプロセスキルされ、キル前の状態に戻すために復元の仕組みが用意されてるがflutterではどうすればいいの?問題。
例えばandroidならonSaveInstanceStateがあるが、flutterではどうすれば?
flutterは1つのActivity上でページ遷移してるが、ページ毎に状態保存、復元は?
https://github.com/flutter/flutter/issues/6827
例えばandroidならonSaveInstanceStateがあるが、flutterではどうすれば?
flutterは1つのActivity上でページ遷移してるが、ページ毎に状態保存、復元は?
https://github.com/flutter/flutter/issues/6827
670デフォルトの名無しさん
2019/05/09(木) 20:58:48.44ID:Gvcl+e3N モバイルアプリ開発したことあれば必ずプロセスキルの問題に出くわすと思うんだがflutterの開発チームはこれ放置してるという。普通flutterの設計段階でこの事考慮すべきだが全く考慮してなさそうというあほっぷり。
671デフォルトの名無しさん
2019/05/09(木) 23:07:11.65ID:p+GF1Adw 地方都市だけど最近Android本が本屋に数冊しかない
他言語は田舎のわりにはけっこう置いてるんだけど
Kotlin移行の影響なのかも
他言語は田舎のわりにはけっこう置いてるんだけど
Kotlin移行の影響なのかも
672デフォルトの名無しさん
2019/05/10(金) 00:21:35.88ID:JD2pFQw6 >>670
flutter詳しくは知らんが、もしそれが本当ならモバイル用途としてはたしかに致命的欠陥だな
後付けでflutterのフレームワークの中で強引に全部保存復帰するようにするから気にするな、みたいなこと
考えてるとしたらヤバイ
そういうことができないモバイルだからステートの保存と復帰はアプリに投げるように作ってあるのに・・
flutter詳しくは知らんが、もしそれが本当ならモバイル用途としてはたしかに致命的欠陥だな
後付けでflutterのフレームワークの中で強引に全部保存復帰するようにするから気にするな、みたいなこと
考えてるとしたらヤバイ
そういうことができないモバイルだからステートの保存と復帰はアプリに投げるように作ってあるのに・・
673デフォルトの名無しさん
2019/05/10(金) 03:07:44.06ID:+vHN15fT >>671
Amazon使いなさい。
Amazon使いなさい。
674デフォルトの名無しさん
2019/05/10(金) 10:49:17.54ID:pdzLc3IS 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/
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/
675デフォルトの名無しさん
2019/05/10(金) 16:19:08.62ID:54LLglmL676デフォルトの名無しさん
2019/05/10(金) 19:41:51.78ID:iG629wI3 >>675
奈良市かな?
奈良市かな?
677デフォルトの名無しさん
2019/05/10(金) 21:37:10.49ID:shkkgOQu678デフォルトの名無しさん
2019/05/10(金) 21:56:19.96ID:54LLglmL >>677
Kindleも試したけど、俺、紙の本派なんだよねぇ。
書き込みできるのが紙の本がありがたい。
KindleのためにiPad Pro 12inchも買ったけどやっぱり紙が良いんだよねぇ。
俺って、変かなぁ。
Kindleも試したけど、俺、紙の本派なんだよねぇ。
書き込みできるのが紙の本がありがたい。
KindleのためにiPad Pro 12inchも買ったけどやっぱり紙が良いんだよねぇ。
俺って、変かなぁ。
679デフォルトの名無しさん
2019/05/10(金) 22:08:26.51ID:3MWdvG+0 紙の解像度にはまだまだ電子書籍は敵わない
紙の優位性はあるから書見台(ブックスタンド)とか使え、そしてやっぱイマイチだってしまい込むんだ
印刷したデータは死んだデータだってのは、まあ、その通りなんだけども
紙の優位性はあるから書見台(ブックスタンド)とか使え、そしてやっぱイマイチだってしまい込むんだ
印刷したデータは死んだデータだってのは、まあ、その通りなんだけども
680デフォルトの名無しさん
2019/05/10(金) 23:11:37.34ID:msYu7Wbl ktorでhttpsやろうとしてサンプル試してみたけどなんかダメだな
681デフォルトの名無しさん
2019/05/11(土) 01:07:57.25ID:i9FGZXUp682デフォルトの名無しさん
2019/05/11(土) 06:20:49.01ID:J+BhWrkd683デフォルトの名無しさん
2019/05/11(土) 07:17:10.19ID:g6fo75+g [改訂新版]Android SDKポケットリファレンス
これのKindle版って、サンプルコード見やすいですか?
[改訂新版]Swiftポケットリファレンス、こいつのKindle版掲載のサンプルコードは、文字の拡大縮小も可能で、Goodなんだけど。
Kindle Paper Whiteで閲覧します。iPad Pro 12inchもあるけど。
これのKindle版って、サンプルコード見やすいですか?
[改訂新版]Swiftポケットリファレンス、こいつのKindle版掲載のサンプルコードは、文字の拡大縮小も可能で、Goodなんだけど。
Kindle Paper Whiteで閲覧します。iPad Pro 12inchもあるけど。
684デフォルトの名無しさん
2019/05/11(土) 07:18:23.32ID:g6fo75+g ちなみに、お試し版をPaperwhiteで見てみたけど、お試し版は最初の数ページ、しかもサンプルコードが無いページしか、試し読みできませんでした。
685デフォルトの名無しさん
2019/05/11(土) 07:25:20.42ID:BxWOidMY kindleはコピペできないからPDF版のあるやつは、そっちを買うようにしてる。
686デフォルトの名無しさん
2019/05/13(月) 07:33:21.30ID:x9oQSWJz その本つてKotlin対応してなかった気がするけど
Javaでも良いの?
Javaでも良いの?
687デフォルトの名無しさん
2019/05/13(月) 09:37:44.97ID:Brt5xi0Z ここが過疎ってるような気がしてslack見てみたけどそっちも過疎ってるのかな。
slackの使い方間違えてるのかな。。
slackの使い方間違えてるのかな。。
688デフォルトの名無しさん
2019/05/13(月) 10:33:56.13ID:4rccaZT+ >>686
JaveでもOKっす。
JaveでもOKっす。
689デフォルトの名無しさん
2019/05/14(火) 02:33:08.66ID:3xJ0OqNt forEach は Iterable<T> と Iterator<T> にあるのに forEachIndexed は Iterable<T> にあっても Iterator<T> にないのは何故か?
690デフォルトの名無しさん
2019/05/14(火) 07:44:27.90ID:DWuOpB8T 昔ケンカしたから
691デフォルトの名無しさん
2019/05/14(火) 07:49:34.32ID:rV66FunX Iteratorは拡張関数が4つしかなくインターフェース変換を除くと実質2つ
なのでむしろforEachとwithIndexだけが特別扱いのようなもの
なのでむしろforEachとwithIndexだけが特別扱いのようなもの
692デフォルトの名無しさん
2019/05/14(火) 10:12:17.90ID:jvXWFm+P うんことりん
693デフォルトの名無しさん
2019/05/14(火) 12:25:52.36ID:zeev4Evh 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"]
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"]
694デフォルトの名無しさん
2019/05/14(火) 12:36:39.21ID:eEvxk7yL >>691
あー。そうか。
まあ Iterable は中に Iterator 返すやつ一つ作ってしまえば良いだけなので object で作ってそのまま forEachOndexed で使えば良いだけなのだがなんというか面倒。
あ、自分でそういう拡張関数作ればいいだけか。てか作っておいて欲しかっな。
あー。そうか。
まあ Iterable は中に Iterator 返すやつ一つ作ってしまえば良いだけなので object で作ってそのまま forEachOndexed で使えば良いだけなのだがなんというか面倒。
あ、自分でそういう拡張関数作ればいいだけか。てか作っておいて欲しかっな。
695デフォルトの名無しさん
2019/05/14(火) 12:45:32.34ID:BT1Jap6O >>689
イテレーターは列挙するものだからインデックスと直結しないのでは
n件のリストがあったとして、それをイテラブルとして回すときのインデックスはほぼ自明だけど
そいつを3から始めるイテレーターや逆順のイテレーター
3歩進んで2歩下がるイテレーターのインデックスというのは
ルールを決めてしまえばいいんだけど本質的な属性ではないと思う
イテレーターは列挙するものだからインデックスと直結しないのでは
n件のリストがあったとして、それをイテラブルとして回すときのインデックスはほぼ自明だけど
そいつを3から始めるイテレーターや逆順のイテレーター
3歩進んで2歩下がるイテレーターのインデックスというのは
ルールを決めてしまえばいいんだけど本質的な属性ではないと思う
696デフォルトの名無しさん
2019/05/14(火) 13:05:37.50ID:4HZJg8yK 拡張関数ってグローバルだよな
どこに書けばいいか迷ったあげく使うクラスと同じファイルに書いてしまう
どこに書けばいいか迷ったあげく使うクラスと同じファイルに書いてしまう
697デフォルトの名無しさん
2019/05/14(火) 16:08:52.35ID:o/ZzSQAi 拡張関数めっちゃ便利だけど、用法用量を守らないととても危険だよな
698デフォルトの名無しさん
2019/05/14(火) 17:29:04.99ID:IaXs534s 拡張関数の定義を interface の中にすれば、使用可能範囲をコントロールできる
699デフォルトの名無しさん
2019/05/14(火) 18:31:50.97ID:hlTwFz7+700デフォルトの名無しさん
2019/05/14(火) 19:29:46.17ID:o/ZzSQAi >>698
知らなかった
知らなかった
701デフォルトの名無しさん
2019/05/15(水) 12:44:33.69ID:laKGlnoI どのみち、IDEがないと読み難い言語だから、Extensionはさして気にならない。
プロパティアクセスのせいで、知らず知らずにシャドウしてしまう方がずっと気になる。
プロパティアクセスのせいで、知らず知らずにシャドウしてしまう方がずっと気になる。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【ネット民のツッコミ】立憲・野田代表の「事実上の撤回」発言がトレンド、「高市さんそんな事は言ってない」「流石に無理あるだろw」 [1ゲットロボ★]
- 【国際法を無視】日本での「中華人民共和国に台湾問題を論じる資格なし」との声に 中国外交部が厳しく反論… ★2 [BFU★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★5 [Ailuropoda melanoleuca★]
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 ★3 [ごまカンパチ★]
- 首相答弁「スパイ防止法、外国代理人登録法、ロビー活動公開法などについて速やかに法案を策定する」 [1ゲットロボ★]
- 東京23区の単身マンション家賃、最高値更新 福岡が初の名古屋超え [蚤の市★]
- まったりまったりおじゃる丸待機スレ🏡
- LOVE PHANTOMの没タイトルwwwwwwwwwwwwwwwwwwwwwwww
- やる気が出なかったらしなくていいのか?って話なんですけど
- ドクターストーンで疑問がある
- 日本語話せない土人「簡単に作れんで」←絶滅させてやろうか
- 中国外務省「全く不十分だ。ごまかすような手口を使うべきではない」高市答弁を批判 [834922174]
