我正在尝试创建一个用Go程序编写的静态对象与C程序(比如内核模块或其他东西).
我已经找到了关于从Go调用C函数的文档,但是我没有找到关于如何走另一条道路的文档.我发现它是可能的,但很复杂.
这是我发现的:
有任何人对此有经验吗?简而言之,我正在尝试创建一个完全用Go编写的PAM模块.
我只是学习tmux而且我没有屏幕经验.我想知道我是否可以将一个tmux客户端中的窗口移动到另一个tmux客户端.我想将我的IRC客户端移动到我的屏幕上的新窗口.
我的目标是从Lua的表中挑选一个随机项目.
这是我到目前为止所做的,但它目前不起作用:
local myTable = { 'a', 'b', 'c', 'd' }
print( myTable[ math.random( 0, #myTable - 1 ) ] )
Run Code Online (Sandbox Code Playgroud)
如何修复上述代码以使其按预期工作?(或者我可以使用哪种其他方法?)
当混合蓝色和黄色涂料时,结果是某种绿色.
我有两种颜色:
blue =(0,0,255)
和黄色=(255,255,0)
找到混合两种颜色的结果的rgb颜色的算法是什么,就像使用涂料时一样?算法产生的颜色不一定非常精确.对于上面的例子,它只需要看起来像某种绿色.
提前致谢.
编辑:这个用Go编写的函数,根据LaC的回答为我工作.
func paintMix(c1, c2 image.RGBAColor) image.RGBAColor {
r := 255 - ((255 - c1.R) + (255 - c2.R))
g := 255 - ((255 - c1.G) + (255 - c2.G))
b := 255 - ((255 - c1.B) + (255 - c2.B))
return image.RGBAColor{r, g, b, 255}
}
Run Code Online (Sandbox Code Playgroud)
编辑#2 Allthought它设法混合青色和黄色,蓝色和黄色之间的混合变成黑色,这似乎不对.我还在寻找一种有效的算法.
编辑#3这是Go中一个完整的工作示例,使用HLS颜色空间:http://go.pastie.org/1976031.谢谢Mark Ransom.
编辑#4看起来更好的颜色混合的前进方式是使用Kubelka-Munk方程
这是一个变量的例子:
names := []interface{}{"first", "second"}
如何从字符串数组中动态初始化?
我无法编译这个程序,因为它似乎不会在Put_Line方法中打印整数变量和字符串.我已经在线查看了源代码,当它们这样做时它可以工作,所以我哪里出错了.谢谢你的帮助.
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure MultiplicationTable is
procedure Print_Multiplication_Table(Number :in Integer; Multiple :in Integer) is
Result : Integer;
begin
for Count in 1 ..Multiple
loop
Result := Number * Count;
Put_Line(Number & " x " & Count & " = " & Result);
end loop;
end Print_Multiplication_Table;
Number : Integer;
Multiple : Integer;
begin
Put("Display the multiplication of number: ");
Get(Number);
Put("Display Multiplication until number: ");
Get(Multiple);
Print_Multiplication_Table(Number,Multiple);
end MultiplicationTable;`
Run Code Online (Sandbox Code Playgroud) 这个简短的C++ 17程序:
#include <iostream>
template <typename T> void output(T x)
{
if constexpr (std::is_integral<decltype(x)>::value) {
std::cout << static_cast<int>(x) << " is integral" << std::endl;
} else {
std::cout << x << " is not integral" << std::endl;
}
}
int main()
{
char x = 65;
output(x);
bool t = true;
output(t);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有这个输出:
65 is integral
1 is integral
Run Code Online (Sandbox Code Playgroud)
在名为的模板函数中output,如何检测参数x是布尔值而不是数字?
计划是输出值std::cout << std::boolalpha <<,但仅限于类型bool.
这是枚举(除跳过顶部和底部4之外的所有值):
pub enum Spinners {
Dots,
Dots2,
Dots3,
Dots4,
...
Shark,
Dqpb,
Weather,
Christmas,
}
Run Code Online (Sandbox Code Playgroud)
一个新的微调器很容易创建:
extern crate spinners;
use spinners::{Spinner, Spinners};
use std::thread::sleep;
use std::time::Duration;
fn main() {
let sp = Spinner::new(Spinners::Dots9, "Waiting for 3 seconds".into());
sleep(Duration::from_secs(3));
sp.stop();
}
Run Code Online (Sandbox Code Playgroud)
但是,我希望随机选择一个微调器,这不起作用:
let spinner_enum = rng.choose(Spinners).unwrap_or(&Spinners::Dots9);
Run Code Online (Sandbox Code Playgroud)
因为:
error[E0423]: expected value, found enum `Spinners`
let spinner_enum = rng.choose(Spinners).unwrap_or(&Spinners::Dots9);
^^^^^^^^ not a value
Run Code Online (Sandbox Code Playgroud)
如何随机选择枚举值,并使用它来显示随机微调器?