为什么以下代码的输出是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) 我试图想出一种使用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) 通常,如果你有类似的东西:
<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,逻辑)...而不添加无意义的包装元素?
我问一个问题,它并没有得到一个非常明确的答案,但看完后这篇文章,我开始喜欢const char[]到const char*。
我在用三元初始化时遇到了困难。鉴于const bool bar,我试过:
const char foo[] = bar ? "lorem" : "ipsum" 这给了我错误:错误:初始化程序无法确定的大小
foo
const char foo[] = bar ? { 'l', 'o', 'r', 'e', 'm', '\0' } : { 'i', 'p', 's', 'u', 'm', '\0' } 这给了我错误:错误:
{令牌前的预期主表达式
有没有办法const char []用三元初始化 a ,还是我必须切换到const char*这里?
虽然这个问题可能看起来像是许多问题的重复,但实际上却被问到了一个具体的原因.拿这个代码,例如:
Dim n As Integer? = If(True, Nothing, 1)
Run Code Online (Sandbox Code Playgroud)
在那个代码中,三元表达式应该返回Nothing,但是它将n设置为0.如果这是C#,我可以说它default(int?)会完美地工作.现在看起来我将不得不抛弃三元并使用常规的If块,但我真的想使用三元组.
如果没有什么是真正的VB.NET等同于C#的默认值,你怎么能解释这种行为?
我的目标是将十进制数转换为平衡三进制。从十进制转换为不平衡的三进制仅需除以3并跟踪余数。一旦获得了数字的不平衡三进制表示,我似乎就无法弄清楚如何“平衡”它。
例如:十进制中的15是不平衡三元中的120,平衡三元中是+-0。我如何从120变为+-0?我不知道如何处理不平衡三进制表示中的2。
谢谢!
我想在三元运算符中编写以下代码。我尝试了很多方法,但是根本没有用。
<?php
if(isset($options['footer_txt_color'])) {
echo $options['footer_txt_color'];
} else {
echo "#ffffff";
}
?>
Run Code Online (Sandbox Code Playgroud) 通过短路,您可以阻止评估表达式的一部分:
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)
这更具可读性,同样简洁.除了说明性术语之外,是否有理由利用逻辑运算符的短路特性?
我有两个二进制整数,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将三元表示中的所有内容交换tx1为2:
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) 我正在尝试使用轮廓数据点绘制 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)