我开始对我的代码库进行更改,但没有意识到我在一个旧主题分支上.要转移它们,我想将它们藏起来,然后将它们应用到主人的新分支中.我曾经git stash pop将正在进行的工作更改转移到这个新分支,忘记在创建新分支之前我没有将新的更改提取到master中.这导致了一堆合并冲突并且丢失了我的更改(因为我使用了pop).
一旦我正确地重新创建了新分支,我如何才能恢复我的隐藏更改以正确应用它们?
在Haskell中,我可以定义一个Tree:
data Tree a = Empty | Node a (Tree a) (Tree a)
我怎么能在Scala中写这个?
我不确定如何将[A]Scala中的type参数保持Node匹配Tree的类型a.
我正在尝试将一些相对简单的模型序列化为json.例如,我想得到json表示:
case class User(val id: Long, val firstName: String, val lastName: String, val email: Option[String]) {
def this() = this(0, "","", Some(""))
}
Run Code Online (Sandbox Code Playgroud)
我是否需要使用适当的读写方法编写自己的格式[用户],还是有其他方法吗?我看过https://github.com/playframework/Play20/wiki/Scalajson,但我还是有些迷茫.
json scala playframework playframework-2.0 playframework-json
给定一个模型的查询集,我想获得一个与外键相关的另一个模型的查询集.以Django项目docs的weblog架构为例:
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
def __unicode__(self):
return self.name
class Author(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField()
def __unicode__(self):
return self.name
class Entry(models.Model):
blog = models.ForeignKey(Blog)
headline = models.CharField(max_length=255)
body_text = models.TextField()
pub_date = models.DateField()
mod_date = models.DateField()
authors = models.ManyToManyField(Author)
n_comments = models.IntegerField()
n_pingbacks = models.IntegerField()
rating = models.IntegerField()
def __unicode__(self):
return self.headline
Run Code Online (Sandbox Code Playgroud)
假设我有一个author对象,并且我希望将作者编写的每个博客都作为查询集.我做的事情author_blogs = [entry.blog for entry in author.entry_set].但是我在这种情况下留下了一个列表,而不是一个查询集.有没有办法可以直接使用ORM查询来执行此操作,因此我可以通过自定义条目管理器进行设置use_for_related_fields = True并执行类似操作author_blogs = author.entry_set.blogs,并获得查询集延迟评估等的好处?
编辑的场景和解决方案
所以,我意识到我的问题的应用与我上面提出的问题略有不同,丹尼尔罗斯曼的情况很有意义.我的情况更像是author.entry_set.manager_method().blogs …
我正在研究一个有很多子组件的组件,其中一些子组件嵌套了五个子组件.我有兴趣使用redux来获得在共同状态原子中具有单一真实来源的优势.
我不理解的是智能/愚蠢的组件推荐,并将提供者置于主要组件之上,并通过道具传递所有内容.如果我这样做,那么我需要将道具一直传递到第五个嵌套项目,这样它就可以进行回调以调度一个动作或查看只有它需要的状态,而不是它的父项.我理解这是用于代码重用,但子组件永远不会在主组件之外使用.这里推荐的解决方案是什么?还在用道具?
注意:该库的作者要求我们在StackOverflow上提问.我之所以提到这一点,是因为SO似乎将"最佳实践"问题标记为过于模糊.
我设法用自定义约束实现表单验证,但现在我想用JSON数据做同样的事情.
如何将自定义验证规则应用于JSON解析器?
示例:客户端的POST请求包含用户名(username),我不仅要确保此参数是非空文本,还要确保此用户实际存在于数据库中.
// In the controller...
def postNew = Action { implicit request =>
request.body.asJson.map { json =>
json.validate[ExampleCaseClass] match {
case success: JsSuccess[ExampleCaseClass] =>
val obj: ExampleCaseClass = success.get
// ...do something with obj...
Ok("ok")
case error: JsError =>
BadRequest(JsError.toFlatJson(error))
}
} getOrElse(BadRequest(Json.obj("msg" -> "JSON request expected")))
}
// In ExampleCaseClass.scala...
case class ExampleCaseClass(username: String, somethingElse: String)
object ExampleCaseClass {
// That's what I would use for a form:
val userCheck: Mapping[String] = nonEmptyText.verifying(userExistsConstraint)
implicit val …Run Code Online (Sandbox Code Playgroud) 在我正在研究的Play应用程序中,我正在尝试改进我们的系统以处理标志,其中一些是用户通过链接导航我们的应用程序时的持久选项.我想使用Shapeless从选项的定义映射到它的值,并且还仅从标记为要传播的参数合成新的查询参数.我还希望能够利用Shapeless的Record功能来获得参数值的强类型解除引用.不幸的是,我不确定我是否在Shapeless中以有效的方式接近它.
以下是一段代码,被一些解释性注释所打断.
以下是我正在使用的基本数据类型:
import shapeless._
import poly._
import syntax.singleton._
import record._
type QueryParams = Map[String, Seq[String]]
trait RequestParam[T] {
def value: T
/** Convert value back to a query parameter representation */
def toQueryParams: Seq[(String, String)]
/** Mark this parameter for auto-propagation in new URLs */
def propagate: Boolean
protected def queryStringPresent(qs: String, allParams: QueryParams): Boolean = allParams.get(qs).nonEmpty
}
type RequestParamBuilder[T] = QueryParams => RequestParam[T]
def booleanRequestParam(paramName: String, willPropagate: Boolean): RequestParamBuilder[Boolean] = { params =>
new RequestParam[Boolean] { …Run Code Online (Sandbox Code Playgroud) 我想在通过JSON读取构造对象时使用常量值.
例如,该类将是:
case class UserInfo(
userId: Long = -1,
firstName: Option[String] = None,
lastName: Option[String] = None
)
Run Code Online (Sandbox Code Playgroud)
阅读将是:
implicit val userRead: Reads[UserInfo] = (
(JsPath \ "userId").read[Long] and
(JsPath \ "firstName").readNullable[String] and
(JsPath \ "lastName").readNullable[String]
)(UserInfo.apply _)
Run Code Online (Sandbox Code Playgroud)
但我不想在JSON对象中指定userId的值.我将如何编写Reads,以便始终在UserInfo对象中创建-1的值而不在正在读取的JSON对象中指定它?
如何从内循环增加外迭代器?
更确切地说:
for i in range(0,6):
print i
for j in range(0,5):
i = i+2
Run Code Online (Sandbox Code Playgroud)
我正进入(状态
0
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
, 但我想要 0,2,4
以上是我想要实现的简单想法.
这是我的Java代码:
str1="ababa"
str2="aba"
for(int i =0; i < str1.length; i++)
for(int j =0; j < str2.length; j++)
if str1[i+j]!=str[j]
break;
if( j ==str2.length -1)
i=i+str2.length;
Run Code Online (Sandbox Code Playgroud) 我正在研究的项目将IE8作为一项硬性要求.我们希望使用Traceur开始使用ES6的一些改进语法,但我知道它会产生ES5,而IE8不支持它.鉴于我可以修补IE8与es5shim,这Traceur支持ES6功能使用是安全的?
更具体地说,我想知道哪些特征映射总是直接映射到完全兼容的代码(可能是糖的大部分),由于垫片的限制而导致行为不匹配,并且完全不可用
scala ×5
json ×3
javascript ×2
django ×1
git ×1
haskell ×1
python ×1
python-2.7 ×1
reactjs ×1
record ×1
redux ×1
shapeless ×1
traceur ×1
validation ×1