我目前使用三个不同的函数来返回一个数值(一个返回一个double,另外两个返回一个long):
int main(void)
{
// lots of code
dRate = funcGetInterestRate();
lMonths = funcGetTerm();
lPrincipal = funcGetPrincipal();
// lots of code
return 0;
}
Run Code Online (Sandbox Code Playgroud)
三个函数代码大约相同,所以我想合并为1个函数.我想将值标志传递给单个函数,如下所示:
doublelonglong我只想在调用函数时从函数返回1个值,但我想要返回的值可以是a double或a long.我想做这样的事情:
void funcFunction(value passed to determine either long or double)
{
// lots of code
if (foo)
return double value;
else
return long value;
}
Run Code Online (Sandbox Code Playgroud)
是否有捷径可寻?
我最近一直在学习使用 gtk-rs 制作简单的 GUI,但遇到了一个问题:数字数据在列表存储/树视图中左对齐,而我希望使其右对齐。
下面的代码是对这里的修改:https ://github.com/gtk-rs/examples/blob/master/src/bin/list_store.rs
我已经能够通过使用“.set_alignment”使列标题对齐到中心(对于日期)和右侧(对于人口和区域),但无法更改数据本身的对齐方式。
字符串数据很容易操作(我在日期项中嵌入了一个选项卡,并且它排列得很好。但是,如果我将人口和面积数据更改为格式化字符串,则在单击列标题时它们将按此排序,而不是作为数字。
非常感谢任何及所有帮助!
extern crate gio;
extern crate gtk;
use gtk::prelude::*;
use std::rc::Rc;
use std::env::args;
use gio::prelude::*;
#[repr(i32)]
enum Columns {
State,
Population,
Area,
Date,
}
fn build_ui(application: >k::Application) {
let window = gtk::ApplicationWindow::new(application);
window.set_title("List Store");
window.set_border_width(10);
window.set_position(gtk::WindowPosition::Center);
window.set_default_size(300, 500);
let vbox = gtk::Box::new(gtk::Orientation::Vertical, 8);
window.add(&vbox);
let label = gtk::Label::new(Some("US State Facts"));
vbox.add(&label);
let sw = gtk::ScrolledWindow::new(None::<>k::Adjustment>, None:: <>k::Adjustment>);
sw.set_shadow_type(gtk::ShadowType::EtchedIn);
sw.set_policy(gtk::PolicyType::Never, gtk::PolicyType::Automatic);
vbox.add(&sw);
let model = Rc::new(create_model());
let treeview = gtk::TreeView::new_with_model(&*model);
treeview.set_vexpand(true);
sw.add(&treeview); …Run Code Online (Sandbox Code Playgroud)