WebHU - Programozási kérdések és válaszok

Java, Play2.0,')' várható, de a '=' lejátszást talált

Amikor megpróbálom hozzon létre egy címkét.

@(level: String = "error")(body: (String) => Html)

@level match {

  case "success" => {
    <p class="success">
      @body("green")
    </p>
  }

  case "warning" => {
    <p class="warning">
      @body("orange")
    </p>
  }

  case "error" => {
    <p class="error">
      @body("red")
    </p>
  }

}

majd frissítse az oldalt http://localhost:9000, és hibaüzenet jelenik meg:

')' expected but '=' found.
In foo/app/views/tags/notice.scala.html at line 4.
1#{extends 'main.html' /}
2#{set title:'notice.scala.html' /}
3
4@(level: String="error")(body: (String) => Html) 
5
6@level match {
7    
8  case "success" => {

Mivel kezdő vagyok a play2.0-ban és a scala-ban is, mondja meg valaki, hogy miért?

21.03.2012

Válaszok:


1

Nem igazán van értelme egy alapértelmezett argumentumnak egy saját argumentumcsoportjában:

@(level: String = "error")(body: (String) => Html)

Figyelje meg, hogy a Scala sablonok gyakori használati esetei „moreScripts and moreStyles” példája hogyan állítja be az alapértelmezett argumentumot egy másik érvvel:

@(title: String, scripts: Html = Html(""))(content: Html)

Ugyanezt megteheti:

@(body: (String) => Html, level: String = "error")

Mellékes megjegyzés: nem túl jó ötlet a Stringsre hagyatkozni a siker/figyelmeztetés/hiba megkülönböztetésében. A húrok törékenyek és elírási hibáknak vannak kitéve, ami bosszantó módon elrejti a hibákat. Ehelyett keressen egy adattípust, vagy hozzon létre saját adattípust, amely ezt reprezentálja: így az elírások fordítási hibává válnak.

class ResultType
case object Success                 extends ResultType
case class Warning(message: String) extends ResultType
case class Error(message: String)   extends ResultType
21.03.2012

2

Szerintem próbáld meg

@(level: (String) => "error")(body: (String) => Html)

@level match {

  case "success" => {
    <p class="success">
      @body("green")
    </p>
  }

  case "warning" => {
    <p class="warning">
      @body("orange")
    </p>
  }

  case "error" => {
    <p class="error">
      @body("red")
    </p>
  }

}
21.03.2012
  • Szerintem meg kell próbálnod, mielőtt válaszként elküldöd. Ez nem működik. 20.07.2012
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..