小编Hui*_*ang的帖子

我们会通过隐式转换来放松精度

Java中有一个问题是我兄弟:

通过隐式转换原始数据类型,您可能会丢失精度并获得不正确的结果.

A,B,False

答案的关键是答:是的

我认为既不会失去精确度也不会得到不正确的结果.我知道显式转换可能会失去精度并得到不正确的结果,但不是隐式转换.

例如:

int i = 9;

short s = 3;

i = s; // implicit conversion, neither loose 
      //precision nor incorrect results

s = i; // compile error, do we call this implicit conversion? 
       //if yes, then the answer to question 3 is True, 
       //but I don't think this is an implicit conversion, 
       //so I think answer is false.   
Run Code Online (Sandbox Code Playgroud)

作为注释中的州:

隐式类型转换:程序员不会尝试转换类型,而是在某些情况下系统会自动转换类型.

有人可以建议吗?

非常感谢.

java implicit implicit-conversion

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

这个Javascript代码块中需要为什么()?

我知道javascript中有很多陷阱,但我仍然不明白表达式a&1和(a&1)之间有什么区别?

以下代码尝试将隐藏11(10个基数)转换为字符串1101(2个基数)

<script>
var str = '';
var a = 11;
for(var i=0;a;i++){
    str = a & 1 + str; // this doesn't work must rewrite as 
    // str = (a & 1) + str;
    console.log('str = ' + str);
    a >>>=1;
}
console.log(str);
</script>
Run Code Online (Sandbox Code Playgroud)

javascript brackets

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

使用 groovy 解析 Jenkin 的 shell 脚本中的 JSON 对象

假设我有一个 JSON 如下:

{"id":"1.0.0-6",
"version":"1.0.0",
"build":6,
"tag":"android-v1.0.0-6",
"commitHash":"5a78c4665xxxxxxxxxxe1b62c682f84",
"dateCreated":"2020-03-02T08:11:29.912Z"}
Run Code Online (Sandbox Code Playgroud)

我想从 Jenkins Groovy 文件中取出版本 ID,并将版本 ID 传递给名为 XRAY 的 JIRA 插件,以便它将在 JIRA 中创建一个构建版本作为标签。

stage('Get App version') {
      steps {
          container('devicefarm') {
               steps {
                   sh "LATEST_VERSION=$(curl ${APP_ARTIFACTORY_URL}/${XRAY_PLATFORM}/builds/latest.json | sed \"s/.*$VERSION_KEY\":\"\\([^\"]*\\).*/'\\1'/\")"
               }
           }
      }
}
environment {
        AWS_DEFAULT_REGION = 'uk-xxx'
        XRAY_ENVIRONMENT = 'e2e'
        VERSION_KEY = 'id'
        XRAY_PLATFORM = 'Android'
        APP_ARTIFACTORY_URL = 'https://artifactory.example.com/mobile'
        LATEST_VERSION = ''
}
Run Code Online (Sandbox Code Playgroud)

我有两个问题,curl 命令的结果是否会按预期分配给名为“LATEST_VERSION”的同一 Jenkins 文件中定义的变量?

我可能可以通过在 Jenkins 上运行管道来测试它,但我遇到了另一个问题,阻止我这样做,它抱怨“需要标识符或代码块”。

在 groovy Jenkins 文件中包含 sh bash 时出错

在 sh 文件中运行相同的内容时,它没有此问题,版本 ID 是按预期从 JSON 检索的。

groovy jenkins jenkins-pipeline

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

在Block中避免强引用循环,我可以简单地执行此操作

我正在读这本书,它说:要打破强大的参考周期,你要在块外面声明一个指向self的__weak指针.然后你可以在块内使用这个指针而不是self:

__weak BNREmployee *weakSelf = self; // a weak reference
myBlock = ^{
    NSLog(@"Employee: %@", weakSelf);
};
Run Code Online (Sandbox Code Playgroud)

块对BNREmployee实例的引用现在是一个弱引用,并且强引用周期被打破.但是,因为引用很弱,所以在执行块时可以释放自指向的对象.您可以通过在块内创建对self的强大本地引用来消除此风险:

__weak BNREmployee *weakSelf = self; // a weak reference
myBlock = ^{
    BNREmployee *innerSelf = weakSelf; // a block-local strong reference
    NSLog(@"Employee: %@", innerSelf);
};
Run Code Online (Sandbox Code Playgroud)

为什么我不能简单地做以下事情?

myBlock = ^{
    BNREmployee *innerSelf = self; // a block-local strong reference
    NSLog(@"Employee: %@", innerSelf);
};
Run Code Online (Sandbox Code Playgroud)

要么

BNREmployee *strongSelf = self; 
myBlock = ^{
    BNREmployee *innerSelf = strongSelf; // a block-local strong reference
    NSLog(@"Employee: %@", innerSelf); …
Run Code Online (Sandbox Code Playgroud)

objective-c ios objective-c-blocks

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