问题.
Gradle依赖管理如下:
目标.
今天我google android studio ide用来做一些测试,当我创建一个新的avd时,我发现avd是在路径上生成的C:\Users\username\\.android\avd.我不希望这样.
有人告诉我如何配置avd到另一条路径?
我有双卡手机,我需要写一个小部件,将禁用第一张或第二张SIM卡.有没有办法做到这一点?
编辑: 我发现了问题
情况令人失望.
我已经从文件到表中加载了一些日期,现在我想将带日期的字符串转换为日期时间格式。我的字符串“ datestring”列看起来像这样“ 12-16-2010 01:48:28”,如果我运行此查询:
select STR_TO_DATE('12-16-2010 01:48:28', '%c-%e-%Y %T')
Run Code Online (Sandbox Code Playgroud)
它返回正确的日期时间: 2010-12-16 01:48:28
但是当我尝试运行此:
update database.`temptable`
SET datetimefile = (SELECT STR_TO_DATE(datestring, '%c-%e-%Y %T'))
Run Code Online (Sandbox Code Playgroud)
我得到那些错误:
Incorrect datetime value: ''12-16-2010 01:48:28'' for function str_to_date
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在使用以下用Scala 2.11.8编写的代码:
sealed trait Acceptable[T]
object Acceptable {
implicit object Int extends Acceptable[Int]
implicit object String extends Acceptable[String]
}
case class Enc[T](f: T => Any)
implicit def test[I, T](implicit f: I => T, a: Acceptable[T]): Enc[I] =
Enc[I](f)
val e = implicitly[Enc[Int]]
Run Code Online (Sandbox Code Playgroud)
它成功编译.
如您所见,a: Acceptable[T]参数应该很容易转换为上下文绑定:
implicit def test[I, T: Acceptable](implicit f: I => T): Enc[I] =
Enc[I](f)
Run Code Online (Sandbox Code Playgroud)
但在那之后,更改编译开始失败并出现错误:
找不到参数e的隐含值:app.Enc [Int]
为什么会这样?
更新:
我试过-Xlog-implicits编译选项和编译日志给我:
[info] /path/to/ScalaTest/src/main/scala/app/Main.scala:60: test is not a valid implicit value for app.Enc[Int] …Run Code Online (Sandbox Code Playgroud) 我阅读了这个问题和答案以及Cocoacasts 博客文章,我完全理解什么是@escaping注释。
但老实说,我不明白我们为什么需要它。
上面的 Cocoacasts 博客文章指出:
默认情况下使闭包不转义有几个好处。最明显的好处是性能和编译器优化代码的能力。如果编译器知道闭包是非转义的,它可以处理内存管理的许多细节。
但是 Swift 编译器可以确定是否@escaping丢失并在这种情况下显示错误,所以如果我们@escaping从 Swift 语言中删除注释,那么编译器仍然可以看到闭包何时没有逃逸,我们可以让他在这种情况下应用优化。
这也意味着您可以在非转义闭包中使用 self 关键字而不会出现问题,因为闭包在函数返回之前被调用。没有必要在闭包中使用对 self 的弱引用。这是您免费获得的一个很好的好处。
但是如果闭包参数被标记为@escaping我仍然可以传递使用强引用的闭包self并且编译器不会显示任何警告。实际上,如果所有在@escaping闭包中捕获的引用都是weak默认的,并且应用特殊的关键字来增强它们,那将会更有用。
此外,我认为@escaping注释可能是通过明确声明此闭包参数不会转义函数体来使代码自记录的方法,但是调用方的目的是什么?它不限制闭包定义的方式,也不阻止调用方使用强引用。所以我剩下的就是希望调用方仔细查看函数签名并采取适当的措施(例如使用弱引用)。
所以问题是为什么我们真的需要@escaping在 Swift 3 中使用闭包,以及在哪些情况下我们不能没有它?
更新:
我知道不能将不转义的闭包传递给闭包参数标记为的函数@escaping:
func testNoEscape(f: () -> ()) {
f()
}
var storeF: (() -> ())?
func testEscaping(f: @escaping () -> ()) {
storeF = f
}
func tryPassNoEscapeToEscaping(f: () -> ()) { …Run Code Online (Sandbox Code Playgroud) 我正在写一个SBT插件.我想使用Circe JSON库,但它需要Scala 2.10上的Macro Paradise编译器插件.
通常,您将编译器插件添加到build.sbtSBT插件project/plugins.sbt.
现在,当您构建SBT插件时,其他插件将成为依赖项,因此您将它们放入并将build.sbt它们传播到您使用SBT插件的项目.
当我将以下片段放入build.sbt我的SBT插件时:
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full)
Run Code Online (Sandbox Code Playgroud)
Paradise编译器插件是否会传播到下游项目?
我有一个很长的文本,我想打破多个页面.我还需要一种方式来设置这个文本的样式.
我使用 Quill 库编写了这个简单的应用程序来查询 Cassandra
QuillSample.scala
import java.util.UUID
import io.getquill._
import scala.concurrent.ExecutionContext.Implicits.global
object QuillSample extends App {
lazy val ctx = new CassandraSyncContext[SnakeCase]("ctx")
import ctx._
val getAllRows = quote {
query[Movies]
}
val result = ctx.run(getAllRows)
println(result)
}
case class Movies(uUID: UUID,
avgRating: Float,
genres: Set[String],
name: String,
releaseDate: java.util.Date,
videoReleaseDate: java.util.Date)
Run Code Online (Sandbox Code Playgroud)
生成.sbt
name := "QuillSample"
version := "1.0"
scalaVersion := "2.12.0"
libraryDependencies ++= Seq(
"io.getquill" % "quill-cassandra_2.11" % "1.0.0"
)
Run Code Online (Sandbox Code Playgroud)
应用程序属性
ctx.keyspace=movielens_small
ctx.preparedStatementCacheSize=1000
ctx.session.contactPoint=192.168.1.169
ctx.session.withPort=9042
ctx.session.queryOptions.consistencyLevel=LOCAL_QUORUM
ctx.session.withoutMetrics=true
ctx.session.withoutJMXReporting=false
ctx.session.maxSchemaAgreementWaitSeconds=1
ctx.session.addressTranslater=com.datastax.driver.core.policies.IdentityTranslator …Run Code Online (Sandbox Code Playgroud) 我有一组[User]叫做conversationUsers 的用户
用户定义为
public class User: NSManagedObject { ... }
Run Code Online (Sandbox Code Playgroud)
并且currUser是一个User对象
如果我试试
currUser == conversationUsers[0]
Run Code Online (Sandbox Code Playgroud)
结果是真的
但
conversationUsers.contains(currUser)
Run Code Online (Sandbox Code Playgroud)
结果错了
相反,我使用
conversationUsers.contains({$0 == currUser})
Run Code Online (Sandbox Code Playgroud)
它返回true
仅供参考我还定义了这个:
public func ==(lhs: User, rhs: User) -> Bool {
let logicalExpression = lhs.email.lowercaseString == rhs.email.lowercaseString
return logicalExpression
}
Run Code Online (Sandbox Code Playgroud)
为什么包含返回false?这是他的默认谓词?
谢谢您的帮助