我希望能够使用-Xfatal-warnings和-Ywarn-unused-import,问题是,编译器是在其中包含了我的应用程序播放路由文件触发的错误:
[error] /path/to/app/conf/routes: Unused import
[error] /path/to/app/conf/routes: Unused import
[error] /path/to/app/conf/routes:1: Unused import
[error] GET /document/:id my.app.controllers.MyController.getById(id: Int)
Run Code Online (Sandbox Code Playgroud)
其他路线也一样.
有可能告诉scalac忽略文件吗?
Scala版本是2.11.8.
我们的代码中包含以下序列:
val halfHourlyColumnNames = Seq("t0000", "t0030", "t0100", "t0130", "t0200", "t0230", "t0300", "t0330", "t0400", "t0430", "t0500", "t0530", "t0600", "t0630", "t0700", "t0730", "t0800", "t0830", "t0900", "t0930", "t1000", "t1030", "t1100", "t1130", "t1200", "t1230", "t1300", "t1330", "t1400", "t1430", "t1500", "t1530", "t1600", "t1630", "t1700", "t1730", "t1800", "t1830", "t1900", "t1930", "t2000", "t2030", "t2100", "t2130", "t2200", "t2230", "t2300", "t2330")
我想以更简洁的方式重写这一点.在Scala中创建上述序列的最短方法是什么?
鉴于此代码
val f1: Future[Int] = Future { 5 } //Future.failed(new Exception("sorry"))
val f2: Future[Int] = Future { 6 }
val result : Future[Int] = f1.fallbackTo {
println("Fall back to that F")
f2
}
Run Code Online (Sandbox Code Playgroud)
结果包含f1的结果.但是,无论f1是否失败,都会执行fallbackTo块中的代码.我期待只有在f1失败时才会执行fallbackTo块.
也许我的例子太简单(或者只是错误),但是fallbackTo的用途是什么?
我一直在寻找如何为公共CRUD和其他类型的操作实现通用特性,我看了这个,这个和指定的方法运行良好.
我想要的是一个通用的插入方法,我的类目前看起来像这样(非泛型实现):
object CampaignModel {
val campaigns = TableQuery[Campaign]
def insert(campaign: CampaignRow)(implicit s: Session) = {
campaigns.insert(campaign)
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我在第一个链接之后尝试了这个(通用实现):
trait PostgresGeneric[T <: Table[A], A] {
val tableReference = TableQuery[T]
def insertGeneric(row: ? What type goes here ?)(implicit s: Session) = tableReference.insert(row)
}
Run Code Online (Sandbox Code Playgroud)
当我检查insert方法时,它看起来应该是正确的类型,T#TableElementType但我的知识非常基本,我无法围绕类型,我尝试过T,A并且编译器说classtype不符合特征的类型.
其他信息,这些表是使用光滑的表生成工具生成的
case class CampaignRow(id: Long, name: Option[String])
/** Table description of table campaign. Objects of this class serve as prototypes for rows in queries. …Run Code Online (Sandbox Code Playgroud) 我想在悬停在元素上时更改字体大小,我遇到的问题是当我移动一个项目时,列表中的其他div向下移动.这是我的代码:
CSS
a{
/* position:absolute */
font-size:16px;
}
a:hover {
color:#0033CC;
font-size:18px;
}
#menu_list{
width:859px;
cursor:pointer;
}
#menu_list li{
width:130px;
height:21px;
display:inline-block;
margin: 0px 0px 0px 0px;
border:1px solid #616261;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
font-family:sans-serif, arial, helvetica;
padding: 10px 10px 10px 10px;
text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
font-weight:bold;
text-align: center;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<ul id="menu_list">
<li><a>look</a></li>
<li><a>look</a></li>
<li><a>look</a></li>
<li><a>look</a></li>
<li><a>look</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这是一个JSFiddle.
正如你所看到的,我写了一个位置:绝对的元素,这有效,意味着div保持不变,但如果我这样做,我无法弄清楚如何将文本居中.我猜测问题是该元素没有上边距,所以我也试过了,但我想内联元素不可能设置边距,或者我现在没有正确的方法.
我有使用Play WS服务的以下功能:
def executeRequest(urls: List[Url]): List[Future[String]] =
urls.map(url => {
WS.url(url.url).get().map(x => url.url + ": " + x.statusText )
})
Run Code Online (Sandbox Code Playgroud)
Url这样定义的案例类在哪里:
case class Url(id: Long, url: String)
Run Code Online (Sandbox Code Playgroud)
我希望我的应用程序具有弹性,如果URL格式不正确,有时url值会触发一个IllegalArgumentException。我试过的是:
def executeRequest2(urls: List[Url]): List[Future[String]] =
urls.map(url => {
WS.url(url.url).get().map(x => url.url + ": " + x.statusText )
.recover({
case e: IllegalArgumentException => url.url + " is invalid"
})
})
Run Code Online (Sandbox Code Playgroud)
这是行不通的,很可能是因为异常是在.get()而不是将来的执行中引发的(无论如何,这只是一个猜测)。
我最终要做的是:
def executeRequest(urls: List[Url]): List[Future[String]] =
urls.map(url => {
try {
WS.url(url.url).get().map(x => …Run Code Online (Sandbox Code Playgroud) 我正在通过播放插件使用Slick 2.0,以下是我的表映射
class Tasks(tag: Tag) extends Table[Task](tag, "Tasks"){
def id = column[Option[Long]]("id", O.PrimaryKey, O.AutoInc)
def txt = column[String]("txt")
def done = column[Boolean]("done")
def * = (id, txt, done) <> (Task.tupled, Task.unapply)
}
Run Code Online (Sandbox Code Playgroud)
然后,我像这样创建了TableQuery对象
val tasks = TableQuery[Tasks]
我曾经tasks.list得到List[Task]哪个返回正确,但是当我想通过使用对结果进行排序时,tasks.list.sortBy(_.id.get.desc)
我得到了这个错误
没有为scala.slick.lifted.ColumnOrdered [Long]定义隐式Ordering。
任何的想法?
我正在尝试编写一个简单的转换器,将a java.util.Function转换为scala.Function1:
def toScalaProducer[T](f: JavaFunction0[T]) : => T = => f()
Run Code Online (Sandbox Code Playgroud)
这是另一个效果很好的变体:
def toScalaFunction[T](f: JavaFunction0[T]) : () => T =
() => f.apply()
Run Code Online (Sandbox Code Playgroud)
问题是我想将转换后的函数传递给现有的Scala API,但该API只接受类型的参数=> T,而不是类型的参数() => T.
有没有办法写这个toScalaProducer功能?
我有一个来自db的数组.数组包含由以下分隔的字符串<br>.所以我想爆炸他们并将其转换为
<ul>
<li>...</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
使用函数(listIt($list))的结构:
function listIt($list)
{
$list = mb_convert_case($list, MB_CASE_TITLE, 'UTF-8');
$text = explode('<br>', $list);
$menu = '<ul>';
foreach ($text as $li)
{
$menu .= '<li>' . $li . '</li>';
}
return $menu . '</ul>';
}
Run Code Online (Sandbox Code Playgroud)
我的数组(rawMenu)如下:
array (size=5)
0 => string 'Banana<br>Cheese<br>Egg<br>Salad<br>Water<br>Juice<br>Coffee' (length=62)
1 => string 'Soup<br>Potato<br>Chicken<br>Fish<br>Juice<br>Wine<br>Salad' (length=61)
2 => string 'Banana<br>Cheese<br>Egg<br>Salad<br>Water<br>Juice<br>Coffee' (length=62)
3 => string 'Soup<br>Potato<br>Chicken<br>Fish<br>Juice<br>Wine<br>Salad' (length=61)
4 => string 'Banana<br>Cheese<br>Egg<br>Salad<br>Water<br>Juice<br>Coffee' (length=62)
Run Code Online (Sandbox Code Playgroud)
问题是我传递给listIt($rawMenu[4])函数返回的字符串:
<ul>
<li>Banana<br>Cheese<br>Egg<br>Salad<br>Water<br>Juice<br>Coffee</li>
</ul>
Run Code Online (Sandbox Code Playgroud) 简单的问题再一次.
我如何在函数/闭包中指定[more]应该来自不可变类型?
其他明智的我有这种副作用如下!
谢谢
var more = 3
def increase[T: Numeric](x: T): T = implicitly[Numeric[T]].plus(x, more.asInstanceOf[T])
val inc = increase[Int] _
more = 10
println( inc(5) )
Run Code Online (Sandbox Code Playgroud)