我正在使用nvd3,但我认为这是关于时间尺度和格式的一般d3.js问题.我创建了一个简单的例子来说明问题(参见下面的代码):
如果我省略了针对xAxis的.tickFormat,它可以在没有日期格式的情况下正常工作.通过下面的示例我得到错误:
未捕获的TypeError:对象1326000000000没有方法'getMonth'
nv.addGraph(function() {
var chart = nv.models.lineChart();
chart.xAxis
.axisLabel('Date')
.rotateLabels(-45)
.tickFormat(d3.time.format('%b %d')) ;
chart.yAxis
.axisLabel('Activity')
.tickFormat(d3.format('d'));
d3.select('#chart svg')
.datum(fakeActivityByDate())
.transition().duration(500)
.call(chart);
nv.utils.windowResize(function() { d3.select('#chart svg').call(chart) });
return chart;
});
function days(num) {
return num*60*60*1000*24
}
/**************************************
* Simple test data generator
*/
function fakeActivityByDate() {
var lineData = [];
var y = 0;
var start_date = new Date() - days(365); // One year ago
for (var i = 0; i < 100; i++) {
lineData.push({x: new Date(start_date + …Run Code Online (Sandbox Code Playgroud) 当我学习语言时,我正在通过学习 - 快速操场并将其升级到Swift 2.0.下面的代码(可能与之前版本的Swift一起工作)现在产生两个错误:"在初始化所有存储属性之前使用'self'"和在初始化之前使用"Constant'self.capitalCity"
class Country
{
let name: String
let capitalCity: City!
init(name: String, capitalName: String)
{
self.name = name
self.capitalCity = City(name: capitalName, country: self)
}
}
class City
{
let name: String
unowned let country: Country
init(name: String, country: Country)
{
self.name = name
self.country = country
}
}
Run Code Online (Sandbox Code Playgroud)
阅读类似问题的答案我看到我可以改为let capitalCity: City!,var capitalCity: City!语法错误得到解决.
我意识到,在这个人为的例子中,一个国家的首都可以改变,所以这样会很好,但如果有一个案例的价值确实是一个常数......
有没有办法解决语法错误,同时保持capitalCity不变?
我正在 使用XCode 在https://github.com/nettlep/learn-swift中完成第一个基本操场
这个表达到底发生了什么?
0xC.3p0 == 12.1875
Run Code Online (Sandbox Code Playgroud)
我已经了解了十六进制文字和特殊的"p"符号,它表示2的幂.
0xF == 15
0xFp0 == 15 // 15 * 2^0
Run Code Online (Sandbox Code Playgroud)
如果我尝试0xC.3我得到错误:十六进制浮点文字必须以指数结束.
我发现了数字文字的这个很好的概述和另一个深刻的解释,但我没有看到解释是什么的东西.3p0.
我已经将代码分叉并将本课程升级到XCode 7/Swift 2 - 这是具体的一行.
我一直在尝试按照一些iOS Swift教程连接到Parse.com
loginViewController.fields = .UsernameAndPassword | .LogInButton | .PasswordForgotten | .SignUpButton | .Facebook | .Twitter
Run Code Online (Sandbox Code Playgroud)
loginViewController.fields = [.UsernameAndPassword, .LogInButton, .SignUpButton, .PasswordForgotten, .Facebook]
Run Code Online (Sandbox Code Playgroud)
我假设前者是Switch 1.x,而thelatter是Swift 2.从上下文看,它们看起来是做同样的事情,但我还没有找到语法变化的语言参考.非常难以搜索点,管道和逗号......有人可以解释每个片段中的语法吗?(我正在阅读语言规范,但实际上让应用程序工作会很有趣!)
我最近遇到了一条我从未见过的借用检查器消息,我试图理解它。这是重现它的代码(简化的,现实生活中的例子更复杂)-操场:
fn foo(v1: &mut Vec<u8>, v2: &mut Vec<u8>, which: bool) {
let dest = if which { &mut v1 } else { &mut v2 };
dest.push(1);
}
Run Code Online (Sandbox Code Playgroud)
它无法编译并出现以下错误:
error[E0623]: lifetime mismatch
--> src/main.rs:2:44
|
1 | fn foo(v1: &mut Vec<u8>, v2: &mut Vec<u8>, which: bool) {
| ------------ ------------ these two types are declared with different lifetimes...
2 | let dest = if which { &mut v1 } else { &mut v2 };
| ^^^^^^^ ...but data from …Run Code Online (Sandbox Code Playgroud) 这个问题是关于如何阅读 Rust 文档并提高我对 Rust 的理解,从而了解如何解决这个特定的编译器错误。
我已经阅读了tokio 文档并尝试了许多示例。在编写自己的代码时,我经常遇到我不理解的编译器错误,并且经常发现我可以修复代码,但不明白为什么需要特定的语法。
我复制了一个基于 tokio 的hello world的非常简单的例子:
use futures::Future;
use tokio::net::TcpStream;
use tokio::prelude::*;
fn main() {
let addr = "127.0.0.1:6142".parse().unwrap();
let client = TcpStream::connect(&addr).and_then(|stream| {
println!("created stream");
// Process stream here.
// Ok(())
});
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不正确,需要注释掉Ok()。我知道这是真的,但不知道为什么。这可能是之前问题的另一半如何解释 read_until 的签名以及 Tokio 中的 AsyncRead + BufRead 是什么?- 现在我更好地理解闭包,但不能完全解析文档以理解预期的返回值。
当我尝试编译上面不正确的代码时,出现以下错误:
error[E0277]: the trait bound `(): futures::future::Future` is not satisfied
--> tokio-chat-client/src/main.rs:8:42
|
8 | let client = TcpStream::connect(&addr).and_then(|stream| …Run Code Online (Sandbox Code Playgroud) 尝试在节点 js 中使用 html-pdf 生成 pdf,但在某些记录后出现以下错误:
TypeError: Cannot read property 'on' of undefined`
events.js:183
throw er; // Unhandled 'error' event
^
Error: spawn /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs EAGAIN
Run Code Online (Sandbox Code Playgroud)
代码:
const filePathName = path.join(__dirname, '../../../views/', "invoice.ejs");
const htmlString = fs.readFileSync(filePathName).toString();
let options = { format: 'Letter',"timeout": 600000 };
const ejsData = ejs.render(htmlString, data);
return pdf.create(ejsData, options).toFile(path.join(__dirname, '../../../tmp/', data.filename), (err, response) => {
if (err) return console.log('err',err);
return response;
});
Run Code Online (Sandbox Code Playgroud) 我使用具有以下结构的库:
struct KeyValue1 {
key: Vec<u8>,
value: Vec<u8>,
}
fn get() -> Vec<KeyValue1> { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
我需要将此向量转换为具有以下结构的几乎相似的向量:
struct KeyValue2 {
key: Vec<u8>,
value: Vec<u8>,
}
Run Code Online (Sandbox Code Playgroud)
为了能够从一个向量转换为另一个向量,我目前使用以下代码:
let convertedItems = items.iter().map(|kv| -> KeyValue2{
key: key.clone(),
value: value.clone()
}).collect()
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但它克隆了两个载体,效率很低。我不再需要原始items向量,因此我想将所有权从 转移KeyValue1到KeyValue2,但我还没有找到方法来做到这一点。
使用 Xcode 7.2(在 Yosemite 上),我似乎无法从游乐场访问 info.plist 中的自定义密钥:
import UIKit
var str = "Hello, playground"
let app_id = NSBundle.mainBundle().infoDictionary?["MyAppID"] as? String
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,app_id 为 nil。我期望它是字符串“TEST”
我将它包含在我的 info.plist 中,如下所示:
游乐场是否有一些我没有读过的限制?
如果我打印所有密钥,则我的自定义密钥丢失:
let dict = NSBundle.mainBundle().infoDictionary!
for k in dict.keys {
print("\(k)")
}
Run Code Online (Sandbox Code Playgroud)
打印以下内容:
DTSDKName
CFBundleIdentifier
CFBundleSupportedPlatforms
CFBundleInfoDictionaryVersion
LSRequiresIPhoneOS
CFBundleNumericVersion
DTPlatformName
CFBundleShortVersionString
CFBundleVersion
UIViewControllerBasedStatusBarAppearance
UIRequiredDeviceCapabilities
UIStatusBarHidden
CFBundlePackageType
UIDeviceFamily
CFBundleExecutable
CFBundleInfoPlistURL
LSBackgroundOnly
CFBundleName
CFBundleDevelopmentRegion
Run Code Online (Sandbox Code Playgroud)
如果我查看捆绑包名称,如下所示:
let name = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName") as? String
Run Code Online (Sandbox Code Playgroud)
我看到了游乐场的名称,而不是工作区的名称。我可以获取该项目的 info.plist 吗?
使用wasm_bindgenwith serde,我尝试JsValue使用惯用的 rust 返回一个复杂的结构。我创建了一个单独的示例来说明我所看到的错误。
结构声明:
#[derive(Serialize)]
pub struct BookStoreData {
pub h: HashMap<String, String>,
pub name: String,
}
Run Code Online (Sandbox Code Playgroud)
函数定义:
#[wasm_bindgen]
pub fn hello_hash(count: i32) -> Result<JsValue, JsValue> {
set_panic_hook();
let mut book_reviews = HashMap::new();
book_reviews.insert(
"Grimms' Fairy Tales".to_string(),
"Masterpiece.".to_string(),
);
let data = BookStoreData {
h: book_reviews,
name: "My Book Store".to_string(),
};
let js_result: JsValue = JsValue::from_serde(&data).unwrap();
OK(js_result)
}
Run Code Online (Sandbox Code Playgroud)
我收到此编译错误:
error[E0425]: cannot find function `OK` in this scope
--> src/hello_whatever.rs:46:5
|
46 | OK(js_result)
| …Run Code Online (Sandbox Code Playgroud) 如何解决此错误?当我在impl.
struct LineHandlerInfo<'a> {
label: &'a str,
match_literal: &'a str,
f: fn(&str) -> Option<&str>,
}
struct Game<'a> {
handlers: Vec<LineHandlerInfo<'a>>,
}
impl Game<'_> {
fn match_str<'a>(
&'a mut self,
label: &'a str,
match_literal: &'a str,
mut f: fn(&str) -> Option<&str>,
) {
let mut lh = LineHandlerInfo {
label,
match_literal,
f,
};
self.handlers.push(lh);
}
}
fn main() {
let mut g = Game {
handlers: Vec::new(),
};
g.match_str("echo hello", "hello", |s| {
println!("{}", s);
None
});
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,出现以下错误: …