我在各种 GitHub Action 工作流程示例中注意到,通常在调用预定义操作(使用语法uses:)时,会指定该操作的特定版本。例如:
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
Run Code Online (Sandbox Code Playgroud)
上述工作流程指定了@v2和actions/checkout。actions/setup-python
问题是,如何知道哪个版本@v2是最好使用的版本?
我如何知道何时@v3可用?
更令人困惑的是用于发布到pypi 的pypa/gh-action-pypi-publish操作的情况。在我看过的示例中,我至少看到指定了四个不同的版本:
pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29pypa/gh-action-pypi-publish@masterpypa/gh-action-pypi-publish@v1pypa/gh-action-pypi-publish@release/v1我怎么知道该使用哪一个? 一般来说,您如何知道哪些可用,以及它们之间的差异是什么?
在下面的代码片段中,您可以看到我在Haskell中编写的两个collatz函数.对于递归应用程序,我在第一个示例(collatz)中使用括号来获得正确的优先级.
由于我刚刚用$学习了函数应用程序,我试图用这个东西重写函数(collatz').但是,我遇到以下错误:
无法匹配期望类型`[a]'与推断类型`a1 - > [a1]'在`(:)'的第二个参数中,即``collatz''在`($)'的第一个参数中,即`n:collatz''在表达式中:n:collatz'$ n`div` 2
collatz :: (Integral a) => a -> [a]
collatz 1 = [1]
collatz n | even n = n : collatz (n `div` 2)
| otherwise = n : collatz (n * 3 + 1)
collatz' :: (Integral a) => a -> [a]
collatz' 1 = [1]
collatz' n | even n = n : collatz' $ n `div` 2
| otherwise = n : collatz' $ n * 3 + 1 …Run Code Online (Sandbox Code Playgroud) 我正在测试一种方法。它两次请求模拟对象的相同功能,但传递了不同的参数。当然,我需要两个不同的答案,但是mockk给了我相同的答案。
every { userRepository.getUser("A") }.answers { userA }
every { userRepository.getUser("B") }.answers { userB }
Run Code Online (Sandbox Code Playgroud)
如何使用mock获得两个不同的结果?
我正在尝试实现一个返回Service具有关联类型的工厂方法。我让它在没有关联类型的情况下工作,但是一旦我添加了它,无论我如何按摩它,我都无法编译它..
这是Service:
trait QType {}
trait Service {
type Query: QType;
fn sanitize(&self, query: &str) -> Result<Self::Query, String>;
fn run(&self, query: &Self::Query) -> Result<(), String>;
}
Run Code Online (Sandbox Code Playgroud)
所以想法是sanitize函数返回 的一个实例Query,然后可以将其传递给run函数。
工厂看起来像这样(不编译):
fn factory<Q: QType>(name: &str) -> Box<dyn Service<Query = Q>> {
match name {
"amazon" => Box::new(amzn::Amazon {}),
other => panic!("Invalid service {}", other),
}
}
Run Code Online (Sandbox Code Playgroud)
现在我这里只有一个服务,我可以在签名中的类型参数中进行特定——这将使它编译——但我想要一个通用的工厂方法并添加更多服务。
下面是Amazon服务的实现:
mod amzn {
use super::*;
pub struct Amazon {}
pub struct Product …Run Code Online (Sandbox Code Playgroud) 我正在使用Maven来构建我的项目.当我在Eclipse中查看它时,它会抱怨
包声明与预期包""不匹配
Maven能够成功地构建项目.

我正在尝试从 Rust 中的字符串创建 md5 哈希值。
这是我在文档中找到的内容:
let digest = md5::compute(b"abcdefghijklmnopqrstuvwxyz");
assert_eq!(format!("{:x}", digest), "c3fcd3d76192e4007dfb496cca67e13b");
Run Code Online (Sandbox Code Playgroud)
所以现在我的代码是:
fn main(){
let digest = md5::compute(b"abcdefghijklmnopqrstuvwxyz");
assert_eq!(format!("{:x}", digest), "c3fcd3d76192e4007dfb496cca67e13b");
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何导入 md5 库,所以我收到以下错误消息:
use of undeclared type or module `md5`
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在合并 PR 时运行 GitHub Action 的方法,GitHub Action 必须获取 PR 描述并将数据存储在某处以供以后使用。
有没有办法通过 GitHub Actions 而不使用 API 或 Webhook 来做到这一点?
我现在回国了liveDataName,但我也想回国liveDataImage。
fun getProfileInfo(): LiveData<String> {
val call: Call<UserProfile>? = NetworkService.getInstance()
.jsonApi
.getProfile()
call?.enqueue(object : Callback<UserProfile>{
override fun onResponse(call: Call<UserProfile>, response: Response<UserProfile>) {
if (response.isSuccessful) {
response.body()?.let {
liveDataName.value = it.username
liveDataImage.value = it.defaultAvatar
}
}
}
override fun onFailure(call: Call<UserProfile>, t: Throwable) {}
})
return liveDataName
}
Run Code Online (Sandbox Code Playgroud) 我正在使用与scala的playframework,我正在尝试构建表单,但得到以下错误
"找不到隐式的MessagesProvider实例.请参阅https://www.playframework.com/documentation/2.6.x/ScalaForms#Passing-MessagesProvider-to-Form-Helpers "这里是我的index.scala.html
@(customerForm:Form[Customer])
@import helper._
@main("welcome") {
<h1>Customer Form</h1>
@form(action=routes.Application.createCustomer()) {
@inputText(customerForm("Credit Limit"))
@inputText(customerForm("Customer Name"))
<input type="submit" value="Submit">
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序控制器代码
package controllers
import play.api._
import play.api.mvc._
import models.Customer
import play.api.data._
import play.api.data.Forms._
class Application extends Controller {
def customerForm = Form(mapping("Customer Name" -> nonEmptyText,
"Credit Limit" -> number)(Customer.apply)(Customer.unapply))
def index = Action { implicit request =>
Ok(views.html.index(customerForm))
}
def createCustomer = Action { implicit request =>
customerForm.bindFromRequest().fold(
formWithErrors => BadRequest(views.html.index(formWithErrors)),
customer => Ok(s"Customer ${customer.name} created successfully"))
} …Run Code Online (Sandbox Code Playgroud) 好吧,我有一个练习来构建一种java编译器.我不会在细节上得到太多.基本上,我想知道是否可以使用可以识别结束括号的正则表达式.例如,这将是一个合法的输入
void foo(){
asd
}
Run Code Online (Sandbox Code Playgroud)
这不会
void foo(){
asd
if (){
asd
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,2个开启者({)只有1个close(}),这使得输入无效.有没有办法使用正则表达式并确定出现次数匹配?
在scala中,你可以将未来的集合"映射"到集合的未来:
val l: List[Future[String]] = List(Future {"1"}, Future {"2"})
val x: Future[List[String]] = Future.sequence(l)
Run Code Online (Sandbox Code Playgroud)
如何用kotlin同样的事情?
我有一个从Network.HTTP获取ResponseCode的函数.为了使用QuickCheck进行测试,我想为ResponseCode编写一个Arbitrary实例.(如果您不知道,ResponseCode只是该库中的三个整数:类型ResponseCode =(Int,Int,Int)).
所以我写了这样的东西:
instance Arbitrary ResponseCode where
arbitrary = triple ( elements [1..6] )
where triple f = (f, f, f)
Run Code Online (Sandbox Code Playgroud)
首先,GHC抱怨我使用类型的方式不是标准的haskell所以我必须使用一些编译器标志(这不是我想要的,因为我觉得必须有一个简单的解决方案来解决这个简单的问题标志).
其次,我的任意函数都有错误的类型,这很明显.但后来我真的不知道如何编写一个函数,返回一个三元组,随机的Ints从1-6开始.
如果有人能帮助我,我将不胜感激.
谢谢.