其實這個問題,很簡單,分析一下就知道了。分析如下:
var str = "我是/@小王@\\和/@小李@\\的好朋友"
你要轉(zhuǎn)成
var arr = [{"text": "我是"}, {"name": 小王"}, {"text": "和"}, {"name": "小李"}, {"text": "的好朋友"}]
以我看來就是,通過/@和@\把字符串分割,并且以/@結(jié)尾的放到text屬性中,以@\結(jié)尾的放到name中,并且保持原有順序。
既然是有兩個分割字符,那么我們就分割兩次。我簡單寫了一下,但是沒有做太多檢驗和判斷?;仡^你對參數(shù)做下校驗。
我的代碼如下:
var str = "我是/@小王@\\和/@小李@\\的好朋友";
var strs = str.split("/@");
var arr = new Array();
for (var i = 0 ;i < strs.length;i++)
{
if(strs[i].indexOf('@\\') != -1)
{
var temps = strs[i].split('@\\');
for(var j=0;j<temps.length;j++)
{
if(j == temps.length -1)
{
var text =
{
text:temps[j]
}
}else
{
var name =
{
name:temps[j]
}
}
}
}else
{
var text =
{
text:strs[i]
}
}
if(name != null && '' != name && 'undifined' != name)
{
arr.push(name);
}
if(text != null && '' != text && 'undifined' != text)
{
arr.push(text);
}
}
console.log(arr);
那么,最后控制臺輸入如下:
如果沒問題,請采納,謝謝。
int fac(int &&a, int &&b) {
if (b == 0)
return a > 0 ? fac(a-1, 0) * a : 1;
return fac(a+b, 0);
}
int fac(int &&a, int &&b) {
if (a > 0)
return fac(a-1, b+0) * (a+b);
else if (b > 0)
return fac(a+0, b-1) * (a+b);
else
return 1;
}
如果構(gòu)造函數(shù)返回了一個“對象”,那么這個對象會取代整個new出來的結(jié)果。
var aa = new a(name);
也就是說 aa 就是{say1:say}這個對象了,他是不具有say2的!
你是想生成一個全排列的結(jié)果吧
你這個一共有
3x3x4x3x3 種可能的
而且這個不應該用遞歸吧,直接就可以5層循環(huán)全遍歷啊,為什么要遞歸?
還有一種辦法,遞歸都不需要,用位運算就可以提取出來,根據(jù)你的情況,就是一個10位二進制數(shù),每2位代表一個就可以提取出來了,不過要注意做過濾。
我實現(xiàn)一下后面一種情況。
var wordList = [
['熱烈', '萬分', '非常', ''],
['歡迎', '感謝', '謝謝'],
['您', '親', '老板', '大神', ''],
['光臨', '惠顧', '支持'],
['小店', '本店', '火女菜館']
];
for(let i=0;i<1024;i++){
//把i按2bit分成5份
b2t0=i&3
b2t1=(i>>2)&3
b2t2=(i>>4)&3
b2t3=(i>>6)&3
b2t4=(i>>8)&3
if( (b2t0==3)|| (b2t1==3) ||(b2t3==3) ||(b2t4==3)) continue
console.log(wordList[0][b2t0]+wordList[1][b2t1]+wordList[2][b2t2]+wordList[3][b2t3]+wordList[4][b2t4])
}
析構(gòu)函數(shù)忘定義了
judge
并沒有立即執(zhí)行,而是在(...arg)=>judge(...args,...arg);
方法被調(diào)用時才被執(zhí)行
這個curry后的函數(shù)只有在傳入的最后一個參數(shù)可以被轉(zhuǎn)換為false
的時候才開始執(zhí)行,它存參數(shù)的方法也很簡單
1,判斷如果最后一個參數(shù)是否可以是false
2,是的話就把所有保存的參數(shù)放到fn
里執(zhí)行,結(jié)束
3,否則,返回一個新的匿名函數(shù),這個函數(shù)把所有傳入?yún)?shù)保存在arg
數(shù)組中,而這個匿名函數(shù)被執(zhí)行后,就把以前收到的參數(shù)數(shù)組和當前的參數(shù)數(shù)組合并后,放到前面說的邏輯中,在judge函數(shù)里判斷,重復第1步
let curry = function(fn) {
var judge = function(...args) {
if (Boolean(args[args.length - 1])===false) {
return fn(args);//three(null)就到這里了
} else {
return function(...arg) { //one和two和three都是這個函數(shù)
return judge(...args, ...arg);
}
}
}
return judge;
}
補充一個使用循環(huán)的實現(xiàn)
現(xiàn):保證數(shù)組的序列是有序的連續(xù)的
$data = [
['AAA', 'aaa', 'aAa'],
['BBB', 'bbb', 'bBb'],
['CCC', 'ccc', 'cCc'],
];
$result = [];
foreach (array_keys($data) as $k) {
$tmp = [];
if (empty($result)) {
$result = $data[$k];
} else {
foreach ($result as $item1) {
foreach ($data[$k] as $item2) {
$tmp[] = $item1 . '-' . $item2;
}
}
$result = $tmp;
}
}
var_dump($result);
re.compile(r"select.*?from.*?where.*?;", re.S|re.M)
?
張老師寫過文章:http://www.cnblogs.com/shanyo...
C#版本的話,我用過WkHtmlToXSharp 和[WkHtmlToXDotNet](https://github.com/TimothyKho...
前者用的人比較多,后者一般般.
注意一點,不要在IIS中使用WkHtmlToXSharp方案,有內(nèi)存泄漏風險,在桌面環(huán)境就隨便玩了;
直接調(diào)用wkhtmltopdf.exe的話就無所謂了.
如果確定是計算密集確實不適合使用python中的多線程,但是是可以考慮使用多進程的。你不需要通過自己創(chuàng)建一個queue來進行內(nèi)部分流,即使需要一個Queue, 也是需要通過給Queue設置大小來限制Queue的流量。
以rabbitmq為例, 請看https://www.rabbitmq.com/tuto...
在rabbitmq的官方例子中,是使用pika做為rabbitmq的客戶端的, 消息模型應該是和你的是一致的,稍微修改一下官方的work.py例子,通過建立多個rabbitmq客戶端來消費消息:
#!/usr/bin/env python
import pika
import time
from concurrent.futures import ProcessPoolExecutor
# from concurrent.futures import ThreadPoolExecutor
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channels = [
(1, connection.channel(1)),
(2, connection.channel(2)),
(3, connection.channel(3)),
]
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
time.sleep(0.2)
print(" [x] Done: %s" % ch.channel_number)
ch.basic_ack(delivery_tag=method.delivery_tag)
for _, channel in channels:
channel.queue_declare(queue='task_queue', durable=True)
channel.basic_qos(prefetch_count=1)
channel.basic_consume(callback, queue='task_queue')
def start_consumer(channel_name):
dict(channels).get(channel_name).start_consuming()
print(' [*] Waiting for messages. To exit press CTRL+C')
with ProcessPoolExecutor(max_workers=len(channels)) as e:
e.map(start_consumer, range(1, 4))
# with ThreadPoolExecutor(max_workers=len(channels)) as e:
# e.map(start_consumer, range(1, 4))
彈性的創(chuàng)建worker我覺的從程序(worker.py)內(nèi)部去實現(xiàn)是比較困難的,從程序外部來看更容易實現(xiàn), 首先監(jiān)控流量, 流量增大可以通過啟動更多的worker.py腳本來加快消息的消費; 反之, 減少worker.py啟動的數(shù)量。
你nm命令看到的那些符號的“U”表示未定義的,你可以看到它們前面沒有內(nèi)存地址信息,這些符號是定義在你引入的mxml庫中的。
你是在生成可執(zhí)行程序main的失敗報錯的吧,如果是在編譯的時候再加上-lmxml選項,并使用-L選項指定mxml庫所在的目錄。
運行時可能會遇到提示找不到libmxml.so**
庫的錯誤提示,可以把libmxml.so**
庫發(fā)布到/usr/lib64目錄下,或者把libmxml.so**
所在目錄配置到/etc/ld.so.conf中,然后執(zhí)行l(wèi)dconfig即可。
只有0和-1才能這樣初始化吧
*.cpp文件沒有加入CMakeLists.txt中, 檢查一下這個文件吧.
設置心跳檢測時間試試
array(
'heartbeat_idle_time' => 600,
'heartbeat_check_interval' => 60,
是的,一個類的public static
方法可以靜態(tài)調(diào)用
@felix 老大已經(jīng)完全解答了OP你的問題, 窩稍微做點微不足道的補充:
foo
此時會對所有X<T>可見. 那么就等于X<int>間接不合理的獲取了所有X<T>的信息(比如其private member). 所以不建議使用, 比如下段代碼可以過編譯.#include<iostream>
using namespace std;
template<typename T>
class A
{
private:
T x;
void setter(T y)
{
x = y;
}
public:
explicit A(T a) : x(a) {}
template<typename U>
friend void foo(A<U> a);
};
A<int> x(7);
template<typename U>
void foo(A<U> a)
{
x.x = 2;
}
int main()
{
A<int> a(7);
A<float> b(1.1);
foo(b);
}
首先靜態(tài)成員變量count需要在類外定義
從c++1z開始可能需要改成首先non-constexpr的靜態(tài)成員變量count需要在類外定義。
詳見http://eel.is/c++draft/depr.s... . demo可以在寫個odr-use函數(shù)試出.#include<iostream>
using namespace std;
template<class T, int n>
class Array;
template<class T, int n>
istream & operator>> (istream & in, Array<T,n>& a);
template<class T,int n>
ostream & operator << (ostream & out,const Array<T,n>& a);
template<class T, int n>
class Array
{
private:
T p[n];
static int count;
public:
friend istream & operator>> <> (istream & in, Array<T,n>& a);
friend ostream & operator << <> (ostream & out,const Array<T,n>& a);
int getSize()
{
return n;
}
static int getArrayCount()
{
return count;
}
};
template<class T,int n>
istream & operator >> (istream & in, Array<T,n>& a)
{
for(int i=0;i<n;i++)
{
in>>a.p[i];
}
a.count++;
return in;
}
template<class T,int n>
ostream & operator << (ostream & out,const Array<T,n>& a)
{
for(int i=0;i<n;i++)
{
out<<a.p[i]<<" ";
}
return out;
}
template<class T, int n>
int Array<T, n>::count = 0;
int main()
{
Array< int, 5 > intArray1;
cin >> intArray1;
Array< int, 5 > intArray2;
cin >> intArray2;
Array< float, 5 > floatArray;
cin >> floatArray;
cout << "\nIntArray1 contains " << intArray1.getSize() << " Elements.\n";
cout << "The values in intArray are:\n";
cout << intArray1;
cout << "\nIntArray2 contains " << intArray2.getSize() << " Elements.\n";
cout << "The values in intArray are:\n";
cout << intArray2;
cout << "\nDoubleArray contains " << floatArray.getSize() << " Elements.\n";
cout << "The values in the doubleArray are:\n";
cout << floatArray;
cout << "\nThere are " << Array<int,5>::getArrayCount() << " Array<int,5> objects.\n";
cout << "\nThere are " << Array<float,5>::getArrayCount() << " Array<float,5> objects.\n";
return 0;
}
很簡單的問題,npm這個報錯我也是服了,就是flash這個用戶名被注冊過了,換一個就好了,我解決了在這里記錄一下,怕以后忘了...
后面你維護的時候,原則上只需要保證那些暴露出去的方法的兼容性即可。
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務機構(gòu),發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。