我试图了解如何以最干净/最安全的方式解决C中的这个微不足道的问题.这是我的例子:
#include <stdio.h>
int main(int argc, char *argv[])
{
typedef struct
{
char name[20];
char surname[20];
int unsigned age;
} person;
//Here i can pass strings as values...how does it works?
person p = {"John", "Doe",30};
printf("Name: %s; Age: %d\n",p.name,p.age);
// This works as expected...
p.age = 25;
//...but the same approach doesn't work with a string
p.name = "Jane";
printf("Name: %s; Age: %d\n",p.name,p.age);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
编译器的错误是:
main.c:在函数'main'中:main.c:18:错误:从类型'char*'分配类型'char [20]'时出现不兼容的类型
我知道C(不是C++)没有字符串类型而是使用字符数组,所以另一种方法是更改示例结构以保存字符指针:
#include <stdio.h>
int main(int argc, char *argv[])
{
typedef …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将WinMerge设置为TortoiseHG中的合并工具; 这是我的Mercurial.ini:
; User specific Mercurial config file.
; See the hgrc man page for details.
[ui]
username = Bargio <>
merge = winmergeu
[extdiff]
cmd.winmerge = C:\Program Files (x86)\WinMerge\WinMergeU.exe
opts.winmerge = /e /x /ub /wl
[merge-tools]
winmergeu.executable = C:\Program Files (x86)\WinMerge\WinMergeU.exe
winmergeu.priority= 1
winmergeu.fixeol=True
winmergeu.checkchanged=True
winmergeu.args= /e /ub /dl other /dr local $other $local $output
winmergeu.gui=False
[tortoisehg]
vdiff = winmerge
Run Code Online (Sandbox Code Playgroud)
Visual diff工作得很好但是当我尝试合并两个文件时,我收到以下错误:
tool winmergeu can't handle binary
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我实际上在研究Crockford的Javascript:好的部分.我是JavaScript的新手,所以我很难理解这段代码是如何工作的:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Run Code Online (Sandbox Code Playgroud)
这就是我的想法:
作为一个方法(一个对象内部的函数),this
指向该Function
对象,但为什么需要返回该对象,因为我从该方法内部访问它?如果我是对的,this
是参考,而不是本地副本,所以:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
};
Run Code Online (Sandbox Code Playgroud)
应该也可以.
另一方面,在JavaScript中,没有return语句的函数返回undefined
并分配给它Function.prototype.method
.
返回有this
什么意义?
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
var add = function(a, b) {
return a+b;
};
Function.method('add', add);
var f = function() {};
print(f.add(1,2));
Number.method('integer', function () {
return Math[this < …
Run Code Online (Sandbox Code Playgroud) javascript extension-methods function-prototypes prototypal-inheritance
在阅读完这个问题之后,我想知道是否有人可以帮助我了解如何使用这些PHP类正确实现依赖注入:
class DBClass
{
private $mMysqli;
function __construct(mysqli $database)
{
$this->mMysqli=$database;
}
function __destruct()
{
$this->mMysqli->close();
}
public function listUsers()
{
$query='SELECT * FROM Utente;';
$resultset=$this->mMysqli->query($query);
while($row = $resultset->fetch_array(MYSQLI_ASSOC)) {
echo $row['username'];
echo $row['pwd'];
echo "<br />\n";
}
}
public function runQuery($query)
{
return $resultset=$this->mMysqli->query($query);
}
public function getConnection()
{
return $this->mMysqli;
}
}
Run Code Online (Sandbox Code Playgroud)
会话类:
class Session
{
private $_session;
public $maxTime;
private $database;
public function __construct(DBClass $database)
{
$this->database=$database;
$this->maxTime['access'] = time();
$this->maxTime['gc'] = get_cfg_var('session.gc_maxlifetime');
session_set_save_handler(array($this,'_open'),
array($this,'_close'), …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用Symfony 2.1.0-DEV和Doctrine 2.2.x使用Sonata Admin Bundle ,而且我遇到了多对多实体关联的问题:
class MyProduct extends Product {
/**
* @ORM\ManyToMany(targetEntity="Price")
*/
private $prices;
public function __construct() {
$this->prices = new \Doctrine\Common\Collections\ArrayCollection()
}
public function getPrices() {
return $this->prices;
}
public function setPrices($prices) {
$this->prices = $prices;
}
}
// Admin Class
class GenericAdmin extends Admin {
...
public function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('General')
->add('prices', 'sonata_type_model')
->end()
;
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
现在,如果尝试为Sonata的CRUD 创建/编辑表单面板中的多对多关联添加价格,则更新不起作用.
关于这个问题的任何提示?谢谢!
我想知道是否有可能为以下数据模式制作一个RegEx:
'152:Ashkenazi A,Benlifer A,Korenblit J,Silberstein SD.'
string = '152: Ashkenazi A, Benlifer A, Korenblit J, Silberstein SD.'
Run Code Online (Sandbox Code Playgroud)
我正在使用这个正则表达式(使用Python的re模块)来提取这些名称:
re.findall(r'(\d+): (.+), (.+), (.+), (.+).', string, re.M | re.S)
Run Code Online (Sandbox Code Playgroud)
结果:
[('152', 'Ashkenazi A', 'Benlifer A', 'Korenblit J', 'Silberstein SD')]
Run Code Online (Sandbox Code Playgroud)
现在尝试使用不同数量(少于4个或超过4个)的名称数据模式不再起作用,因为RegEx期望只找到其中的4个:
(.+), (.+), (.+), (.+).
Run Code Online (Sandbox Code Playgroud)
我找不到一种方法来概括这种模式.
我精心设计了这个正则表达式:
<entry>\\n<(\w+)>(.+?)</\w+>\\n</entry>
Run Code Online (Sandbox Code Playgroud)
解析以下RSS 提要:
<?xml version="1.0" encoding="UTF-8"?>\n<feed version="0.3" xmlns="http://purl.org/atom/ns#">\n<title>Gmail - Inbox for g.bargelli@gmail.com</title>\n<tagline>New messages in your Gmail Inbox</tagline>\n<fullcount>2</fullcount>\n<link rel="alternate" href="http://mail.google.com/mail" type="text/html" />\n<modified>2011-03-15T11:07:48Z</modified>\n<entry>\n<title>con due mail...</title>\n<summary>Gianluca Bargelli http://about.me/proudlygeek/bio</summary>\n<link rel="alternate" href="http://mail.google.com/mail?account_id=g.bargelli@gmail.com&message_id=12eb9332c2c1fa27&view=conv&extsrc=atom" type="text/html" />\n<modified>2011-03-15T11:07:42Z</modified>\n<issued>2011-03-15T11:07:42Z</issued>\n<id>tag:gmail.google.com,2004:1363345158434847271</id>\n<author>\n<name>me</name>\n<email>g.bargelli@gmail.com</email>\n</author>\n</entry>\n<entry>\n<title>test nuova mail</title>\n<summary>Gianluca Bargelli sono tornato!?& http://about.me/proudlygeek/bio</summary>\n<link rel="alternate" href="http://mail.google.com/mail?account_id=g.bargelli@gmail.com&message_id=12eb93140d9f7627&view=conv&extsrc=atom" type="text/html" />\n<modified>2011-03-15T11:05:36Z</modified>\n<issued>2011-03-15T11:05:36Z</issued>\n<id>tag:gmail.google.com,2004:1363345026546890279</id>\n<author>\n<name>me</name>\n<email>g.bargelli@gmail.com</email>\n</author>\n</entry>\n</feed>\n'skinner.com/products/spl].
Run Code Online (Sandbox Code Playgroud)
问题是我没有通过使用Python 的 re 模块获得任何匹配项:
import re
regex = re.compile("""<entry>\\n<(\w+)>(.+?)</\w+>\\n</entry>""")
regex.findall(rss_string) # Returns an empty list
Run Code Online (Sandbox Code Playgroud)
使用在线正则表达式测试器(例如这个)可以按预期工作,所以我认为这不是正则表达式问题。
我很清楚使用正则表达式来解析上下文无关语法是不好的,但在我的情况下,正则表达式可能只适用于那个 RSS 提要(顺便说一下,它是一个 Gmail 收件箱提要),我知道我可以使用外部库/xml 解析器来完成此任务:这只是练习,而不是习惯。
问题应该是 …
我找不到一个用Qt/PyQt拖动(和删除)多个元素的例子; 在我的情况下,我需要从这个QTableView拖动元素:
class DragTable(QTableView):
def __init__(self, parent = None):
super(DragTable, self).__init__(parent)
self.setDragEnabled(True)
def dragEnterEvent(self, event):
if event.mimeData().hasFormat("application/pubmedrecord"):
event.setDropAction(Qt.MoveAction)
event.accept()
else:
event.ignore()
def startDrag(self, event):
print type(event)
index = self.indexAt(event.pos())
if not index.isValid():
return
selected = index.row()
bstream = cPickle.dumps(selected)
mimeData = QMimeData()
mimeData.setData("application/pubmedrecord", bstream)
drag = QDrag(self)
drag.setMimeData(mimeData)
pixmap = QPixmap(":/drag.png")
drag.setHotSpot(QPoint(pixmap.width()/3, pixmap.height()/3))
drag.setPixmap(pixmap)
result = drag.start(Qt.MoveAction)
def mouseMoveEvent(self, event):
self.startDrag(event)
Run Code Online (Sandbox Code Playgroud)
对于这个QLabel(我的dropzone):
class TagLabel(QLabel):
def __init__(self, text, color, parent = None):
super(TagLabel, self).__init__(parent)
self.tagColor = color
self.setText(text)
self.setStyleSheet("QLabel { background-color: …
Run Code Online (Sandbox Code Playgroud) python ×3
php ×2
regex ×2
string ×2
c ×1
doctrine-orm ×1
javascript ×1
mercurial ×1
merge ×1
oop ×1
pyqt ×1
pyqt4 ×1
rss ×1
strcpy ×1
struct ×1
symfony-2.1 ×1
tortoisehg ×1
unicode ×1
winmerge ×1