标签: ternary

三元运算符

为什么以下代码的输出是9.0而不是9?如果三元运算符只是if-else分支的简短形式,那么为什么java编译器将int提升为double?

public class Ternary
  {
public static void main(String args[])
     {
    int a = 5;
    System.out.println("Value is - " + ((a < 5) ? 9.9 : 9));
     }
  }
Run Code Online (Sandbox Code Playgroud)

java ternary

6
推荐指数
2
解决办法
5236
查看次数

R中的三元热图

我试图想出一种使用R绘制三元热图的方法.我认为ggtern应该可以解决这个问题,但我不知道如何在vanilla ggplot2中执行像stat_bin这样的分箱功能.这是我到目前为止所拥有的:

require(ggplot2)
require(ggtern)
require(MASS) 
require(scales)

palette <- c( "#FF9933", "#002C54", "#3375B2", "#CCDDEC", "#BFBFBF", "#000000")

sig <- matrix(c(1,2,3,4),2,2)
data <- data.frame(mvrnorm(n=10000, rep(2, 2), Sigma))
data$X1 <- data$X1/max(data$X1)
data$X2 <- data$X2/max(data$X2)
data$X1[which(data$X1<0)] <- runif(length(data$X1[which(data$X1<0)]))
data$X2[which(data$X2<0)] <- runif(length(data$X2[which(data$X2<0)]))

##  Print 2d heatmap
ggplot(data, aes(x=X1, y=X2)) + 
    stat_bin2d(bins=50) + 
    scale_fill_gradient2(low=palette[4], mid=palette[3], high=palette[2]) +
    xlab("Percentage x") +
    ylab("Percentage y") +
    scale_y_continuous(labels = percent) +
    scale_x_continuous(labels = percent) +
    theme_bw() + theme(text = element_text(size = 15))

data$X3 <- with(data, 1-X1-X2)
data <- data[data$X3 >= 0,] …
Run Code Online (Sandbox Code Playgroud)

r ternary heatmap binning ggtern

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

如何在三元组合中组合React元素和文本?

通常,如果你有类似的东西:

<SomeComponent foo={bar} />
Run Code Online (Sandbox Code Playgroud)

您可以使用三元组使其成为可选项:

{bar ? <SomeComponent foo={bar} /> : null}
Run Code Online (Sandbox Code Playgroud)

但是,如果您开始使用的块包含一个组件加上一些文本(单个空格)和一个变量,例如:

<SomeComponent foo={bar} /> {foobar}
Run Code Online (Sandbox Code Playgroud)

将它括在括号中是行不通的:

{bar ? (<SomeComponent foo={bar} /> {foobar}) : null}
Run Code Online (Sandbox Code Playgroud)

事实上,我发现使其工作的唯一方法是将所有内容包装在另一个元素中:

{bar ? <span><SomeComponent foo={bar} /> {foobar}</span> : null}
Run Code Online (Sandbox Code Playgroud)

有没有其他方法告诉React:

<SomeComponent foo={bar} /> {foobar}
Run Code Online (Sandbox Code Playgroud)

是一个离散的块,所以我可以在三元组中使用它(在JS内部,而不是JSX,逻辑)...而不添加无意义的包装元素?

ternary jsx reactjs

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

我可以用三元初始化 char[] 吗?

我问一个问题,它并没有得到一个非常明确的答案,但看完后这篇文章,我开始喜欢const char[]const char*

我在用三元初始化时遇到了困难。鉴于const bool bar,我试过:

  1. const char foo[] = bar ? "lorem" : "ipsum" 这给了我错误:

错误:初始化程序无法确定的大小 foo

  1. const char foo[] = bar ? { 'l', 'o', 'r', 'e', 'm', '\0' } : { 'i', 'p', 's', 'u', 'm', '\0' } 这给了我错误:

错误:{令牌前的预期主表达式

有没有办法const char []用三元初始化 a ,还是我必须切换到const char*这里?

c++ arrays ternary variable-initialization char-pointer

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

什么是VB.NET相当于C#的默认关键字?

可能重复:
Bug ?? 如果通过三元运算符为可空整数赋值,则它不能为空

虽然这个问题可能看起来像是许多问题的重复,但实际上却被问到了一个具体的原因.拿这个代码,例如:

Dim n As Integer? = If(True, Nothing, 1)
Run Code Online (Sandbox Code Playgroud)

在那个代码中,三元表达式应该返回Nothing,但是它将n设置为0.如果这是C#,我可以说它default(int?)会完美地工作.现在看起来我将不得不抛弃三元并使用常规的If块,但我真的想使用三元组.

如果没有什么是真正的VB.NET等同于C#的默认值,你怎么能解释这种行为?

vb.net dbnull default nullable ternary

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

如何从不平衡三元转换为平衡三元?

我的目标是将十进制数转换为平衡三进制。从十进制转换为不平衡的三进制仅需除以3并跟踪余数。一旦获得了数字的不平衡三进制表示,我似乎就无法弄清楚如何“平衡”它。

例如:十进制中的15是不平衡三元中的120,平衡三元中是+-0。我如何从120变为+-0?我不知道如何处理不平衡三进制表示中的2。

谢谢!

algorithm math ternary

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

PHP中具有回声值的三元运算符

我想在三元运算符中编写以下代码。我尝试了很多方法,但是根本没有用。

<?php 

if(isset($options['footer_txt_color'])) {

    echo $options['footer_txt_color'];

} else {

    echo "#ffffff";

}

?>
Run Code Online (Sandbox Code Playgroud)

php ternary operator-keyword

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

三元运算符可以等同于逻辑运算符的短路吗?

通过短路,您可以阻止评估表达式的一部分:

let x = "", y = 123;
x && alert("foo"); // ""
y || alert("bar") // 123
Run Code Online (Sandbox Code Playgroud)

由于逻辑运算形式表达式,您可以在函数调用或返回语句中使用它们.

但最终,这只不过是条件分支,可以通过三元运算符轻松实现:

x ? alert("foo") : x; // ""
y ? y : alert("bar"); // 123
Run Code Online (Sandbox Code Playgroud)

这更具可读性,同样简洁.除了说明性术语之外,是否有理由利用逻辑运算符的短路特性?

javascript ternary short-circuiting

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

如何将两个二进制数合并为三进制数

我有两个二进制整数,x0并且x1是8位(这样它们跨越从0到255).关于这些数字,这句话总是如此:x0 & x1 == 0.这是一个例子:

bx0 = 100 # represented as 01100100 in binary
bx1 = 129 # represented as 10000001 in binary
Run Code Online (Sandbox Code Playgroud)

所以我需要对这些数字进行以下操作.首先,将这些二进制表示解释为三元(基数为3)的数字,如下所示:

tx0 = ternary(bx0) # becomes  981 represented as 01100100 in ternary
tx1 = ternary(bx1) # becomes 2188 represented as 10000001 in ternary
Run Code Online (Sandbox Code Playgroud)

然后,1将三元表示中的所有内容交换tx12:

tx1_swap = swap(tx1) # becomes 4376, represented as 20000002 in ternary
Run Code Online (Sandbox Code Playgroud)

然后使用它们的三元版本OR来获得最终的组合数字:

result = ternary_or(tx0, tx1_swap) # …
Run Code Online (Sandbox Code Playgroud)

python ternary

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

在三元散点图上调整绘图轴限制和轴标题位置

我正在尝试使用轮廓数据点绘制 scatter_ternary 图中数据框中三列的数据。

数据框中的列是Power (W)Speed (mm/s)Hatch (mm),我使用数据框中的另一列 ( Energy Density (J/mm^3)) 来改变每个数据点的大小,并使用另一列Relative Density (%)来应用轮廓。

数据从 0 到 1 进行了 min-max 标准化,因为列值的比例有几个数量级的变化。我写了下面的代码:

fig = px.scatter_ternary(df_all, 'Power (W)', 'Speed (mm/s)', 'Hatch (mm)',
                         hover_name="Build", symbol="Build", size = "Energy Density (J/mm^3)", 
                         color="Relative density (%)",
                         title='Process Window', size_max=15, width=875, height=700,
                         symbol_sequence = [0,3,5,14,2,26])

# move colorbar
fig.update_layout(coloraxis_colorbar=dict(yanchor="top", y=1.05, x=1, 
                  ticks="outside", ticksuffix="%"))

# move legend
fig.update_layout(legend=dict(yanchor="top", y=1.025, x=0.775))

fig.update_layout({
        'ternary':
            {
            'sum':1,
            'aaxis':{'title': 'Min-Max Normalized Laser Power<br>', …
Run Code Online (Sandbox Code Playgroud)

python ternary plotly

5
推荐指数
0
解决办法
341
查看次数