小编ret*_*hab的帖子

如何知道要使用哪个版本的 GitHub Action

我在各种 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)

上述工作流程指定了@v2actions/checkoutactions/setup-python

问题是,如何知道哪个版本@v2是最好使用的版本?
我如何知道何时@v3可用?

更令人困惑的是用于发布到pypi 的pypa/gh-action-pypi-publish操作的情况。在我看过的示例中,我至少看到指定了四个不同的版本:

  • pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
  • pypa/gh-action-pypi-publish@master
  • pypa/gh-action-pypi-publish@v1
  • pypa/gh-action-pypi-publish@release/v1

我怎么知道该使用哪一个? 一般来说,您如何知道哪些可用,以及它们之间的差异是什么?

python github-actions building-github-actions

13
推荐指数
1
解决办法
5460
查看次数

Haskell:带有$的函数应用程序

在下面的代码片段中,您可以看到我在Haskell中编写的两个collat​​z函数.对于递归应用程序,我在第一个示例(collat​​z)中使用括号来获得正确的优先级.

由于我刚刚用$学习了函数应用程序,我试图用这个东西重写函数(collat​​z').但是,我遇到以下错误:

无法匹配期望类型`[a]'与推断类型`a1 - > [a1]'在`(:)'的第二个参数中,即``collat​​z''在`($)'的第一个参数中,即`n:collat​​z''在表达式中:n:collat​​z'$ 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)

haskell ghci

11
推荐指数
3
解决办法
435
查看次数

如何将进度条添加到我的 github 操作中

我正在为我的项目编写一些 GitHub 操作,我希望有橙色进度条来跟踪我的操作进度。

github 操作文档示例

github github-actions

11
推荐指数
1
解决办法
2265
查看次数

如何根据模拟中传递的参数从同一函数返回两个不同的模拟?

我正在测试一种方法。它两次请求模拟对象的相同功能,但传递了不同的参数。当然,我需要两个不同的答案,但是mockk给了我相同的答案。

every { userRepository.getUser("A") }.answers { userA }
every { userRepository.getUser("B") }.answers { userB }
Run Code Online (Sandbox Code Playgroud)

如何使用mock获得两个不同的结果?

testing android kotlin mockk

6
推荐指数
1
解决办法
4349
查看次数

具有关联类型的工厂方法

我正在尝试实现一个返回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)

rust

6
推荐指数
1
解决办法
236
查看次数

Eclipse说包声明与预期的包""不匹配

我正在使用Maven来构建我的项目.当我在Eclipse中查看它时,它会抱怨

包声明与预期包""不匹配

Maven能够成功地构建项目.

Eclipse项目视图

eclipse maven

5
推荐指数
1
解决办法
8427
查看次数

Rust 中的 MD5 哈希

我正在尝试从 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)

md5 rust

5
推荐指数
1
解决办法
9375
查看次数

合并 PR 时运行 GitHub Action

我正在寻找一种在合并 PR 时运行 GitHub Action 的方法,GitHub Action 必须获取 PR 描述并将数据存储在某处以供以后使用。

有没有办法通过 GitHub Actions 而不使用 API 或 Webhook 来做到这一点?

github github-actions

5
推荐指数
1
解决办法
6474
查看次数

Kotlin 中如何返回两个值?

我现在回国了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)

return-value kotlin android-studio

4
推荐指数
1
解决办法
4290
查看次数

使用scala在Play框架中找不到Implicit Messages Provider实例

我正在使用与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)

scala playframework

3
推荐指数
1
解决办法
2006
查看次数

编程"编译器" - 任何知道{(开启者)是否}的方式(关闭)?

好吧,我有一个练习来构建一种java编译器.我不会在细节上得到太多.基本上,我想知道是否可以使用可以识别结束括号的正则表达式.例如,这将是一个合法的输入

void foo(){
   asd
}
Run Code Online (Sandbox Code Playgroud)

这不会

void foo(){
   asd
   if (){
      asd
   }
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,2个开启者({)只有1个close(}),这使得输入无效.有没有办法使用正则表达式并确定出现次数匹配?

java regex compiler-theory language-theory

1
推荐指数
1
解决办法
179
查看次数

在kotlin中是否有Future.sequence类似物?

在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同样的事情?

scala future kotlin completable-future

1
推荐指数
1
解决办法
141
查看次数

使用Arbitrary实例生成三元组(Network.HTTP.ResponseCode)

我有一个从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开始.

如果有人能帮助我,我将不胜感激.

谢谢.

haskell quickcheck

0
推荐指数
1
解决办法
92
查看次数