play samples内のzentask について

83 views
Skip to first unread message

i akira

unread,
Sep 1, 2014, 7:03:46 PM9/1/14
to pla...@googlegroups.com
稲井ともうします
playframework内sanplesのZentaskを読んでいてわからない部分が
ありまして、お知恵を拝借させて頂ければ幸いです。

下記表記
直感的には、indexが呼ばれると認証チェックをし、OKならばダッシュボードを表示
というふうには読めるのですが、なぜこういう表記になるかが
わかりません
細かい一文一文が理解できないのです
虫のいい話ですが、どなたか説明願えませんでしょうか?


def index = IsAuthenticated { username => _ =>
  User.findByEmail (username).map { user =>
     OK(
          html.dashboard(
            Project.findInvolving(username),
            Task.findInvolving(username),
            user
          )
      )
 }.getOrElse(Forbidden)


お手数ですがよろしくお願い致します

i akira

unread,
Sep 6, 2014, 10:59:04 PM9/6/14
to pla...@googlegroups.com

どうも質問の仕方が悪いようなので、補足です

IsAuthentivated { username => _ => User.findByEmail(......

=>が連続した場合どういう意味になるのでしょうか?

お手数ですがよろしくお願い致します

Kenji Yoshida

unread,
Sep 7, 2014, 12:58:51 PM9/7/14
to pla...@googlegroups.com
"=>が連続" というのは おそらく

=> _ =>

の部分だと思いますが、 アンダースコアの記法を知らなかったとかでしょうか?
もしそうだとしたら、この場合使用しない無名関数の変数なので、わざと _ にしていて、これは

username => request => User.findByEmail 

と同じです。






i akira

unread,
Sep 8, 2014, 5:32:48 AM9/8/14
to pla...@googlegroups.com
Kenji Yoshida 様 


ご回答ありがとうございます。
ポインターまで指し示して頂き感謝いたします。
まだまだ勉強不足につき、何がわかってないかもわかっていない状態です。

恥かきついでに、ご回答頂いた処理はどう理解すればいいのでしょうか?

username => request => User.findByEmail 

お手数ですが
よろしくお願い致します。



2014年9月8日月曜日 1時58分51秒 UTC+9 Kenji Yoshida:

Kenji Yoshida

unread,
Sep 8, 2014, 5:41:49 AM9/8/14
to pla...@googlegroups.com
> ご回答頂いた処理はどう理解すればいいのでしょうか?

Scalaの文法的な話をすれば、

引数 => 処理

で無名関数やラムダと言われるものが作れます。それが連続しただけで、(優先順位の問題がありますが)、2つ無名関数が続いたからといって、その場合に特に特別なルールなどはありません。あえて、カッコを付けてみるなら

username => { request => User.findByEmail }

となるでしょうか。

あとは、このあたりで引っかかるレベルならば、
playのzen taskのサンプルコード初心者には少し難しいとおもうので、
もう少し簡単なコードを見つけて読んだほうがいいかもしれません。



2014年9月8日 18:32 i akira <rak...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Playframeworkユーザー会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには play_ja+u...@googlegroups.com
> にメールを送信してください。
> このグループに投稿するには pla...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/play_ja からこのグループにアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

i akira

unread,
Sep 8, 2014, 7:16:03 PM9/8/14
to pla...@googlegroups.com
Kenji Yoshida 様

丁寧なご回答有り難うございます。
無名関数やラムダと言われるものだったのですね、勉強不足でした。
ご指摘までして頂き感謝いたします。

有難う御座いました。

2014年9月8日月曜日 18時41分49秒 UTC+9 Kenji Yoshida:
Reply all
Reply to author
Forward
0 new messages