Unicode: ‘\u3000’,
字符:(“ ”)
Unicode: ‘\u3000’,
字符:(“ ”)
1. 修改postgresql.conf
postgresql.conf存放位置在
/etc/postgresql/x.x/main
x
取决于你安装PostgreSQL的版本号,编辑或添加下面一行,使PostgreSQL可以接受来自任意IP的连接请求。
listen_addresses = '*'
2. 修改pg_hba.conf
增加这一行
#TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
3. 重启服务
sudo service postgresql restart
第二步,修改密码
此时,远程登录时,可能提示密码不正确,修改默认用户的密码。
切换账号:sudo -u postgres psql
修改密码:ALTER USER postgres WITH PASSWORD 'postgres';
(注意后面有分号)
或者直接修改 Linux 账户的密码(未尝试)
步骤一:删除用户postgres的密码
sudo passwd -d postgres
步骤二:设置用户postgres的密码
sudo -u postgres passwd
系统提示输入新的密码
Enter new UNIX password:
Retype new UNIX password:
如果想新建不同的账户,则按照 Linux 创建账号的步骤来就可以了,因为 PostgreSQL 默认使用的是基于 Linux 的账户认证系统。
主要可能是新版本系统(或者软件)对于获取设备的返回数据格式作了修改
所以这里在 cordova build ios 获取可用设备列表的时候,会报 Cannot read property ‘toLowerCase’ of undefined。
解决方法很简单
打开这个文件:platforms/ios/cordova/lib/list-emulator-build-targets,
大概 54 行左右
device.availability.toLowerCase().indexOf('unavailable') < 0
device.isAvailable
availableDevicesInCategory.forEach(function (device) {
// console.log(device);
if (device.name === deviceType.name.replace(/\-inch/g, ' inch') && device.isAvailable) {
availAcc.push(device);
}
});
console.log(device);
输出是什么,我这里输出的是:
{ state: 'Booted',
isAvailable: true,
name: 'iPhone 11 Pro',
udid: 'A4E72C68-XXXX-XXXX-XXXX-DFB57EB137B7'
}
var x = [1,2,3,4,5,6,7,8,9,10];
// var x = (Array(101).join(0).split('')).map((a,i)=>{return i+1;});
var findIndex = (target, x, lowIndex, highIndex) => {
var low = lowIndex || 0;
var high = highIndex === undefined ? (x.length - 1) : highIndex;
var mid = Math.ceil((low + high) / 2);
// var mid = Math.floor((low + high) / 2);
// console.log('Mid : ', mid);
if(target === x[mid]){
return mid;
} else {
if(target < x[mid]){
// console.log('Low : ', x.slice(low, mid));
return findIndex(target, x, low, mid - 1);
} else {
// console.log('High : ', x.slice(mid, high));
return findIndex(target, x, mid + 1, high);
}
}
};
x.forEach((z)=>{
console.log(findIndex(z, x));
});
在VPS上面安装Wordpress可能没有虚拟空间那么简单,但是复杂也给了你更大的优化和自定义空间。安装 WordPress 很多人都会发现安装插件或者升级的时候提示要FTP账号,这就是因为文件权限没有设置正确。
WordPress官网介绍了详细的各文件需要的权限,下面我们看看应该怎么做。
先设定用户所有者为 www (有些php默认运行用户和组是http这些,按照php和nginx的配置来设置),比如我的网站根目录是在/home/wwwroot 那么
chown -R www:www /home/wwwroot
下面将所有文件夹设置为755权限,所有文件设置为644权限,注意!任何时候都不要设置为777权限(本方法来自Virson’s Blog,原贴为Linux 批量单独修改文件夹、文件的权限和所有者)
进入网站根目录
cd /home/wwwroot
设置此目录下所有文件夹的权限为755
find -type d -exec chmod 0755 {} \;
设置此目录下所有文件的权限为644
find -not -type d -exec chmod 644 {} \;
问题解决!
Dart 是一门完备的面向对象的编程语言,所以函数也是对象并且其类型是 Function。所以这就表示函数也可以赋值给变量,也就是说可以将函数作为参数进行传递。
一个函数的示例
bool isBiggerThan10(int number) {
return number > 10;
}
虽然加上函数的返回值是个好习惯,但是 Dart 并不一定非要返回值,因为 Dart 会尝试推断函数的返回值。如果没有明确返回值,则会返回 null(因为 Dart 中所有未定义的变量都是 null)。
例如:
isBiggerThan10(int number) {
return number > 10;
}
可以通过
print(isBiggerThan10.runtimeType);
来获取此函数的类型。
当然了,为了简化函数的写法,Dart 也支持箭头函数,上面的例子可以写作为:
bool isBiggerThan10(int number) => number > 10;
但不可写作下面这样子(number > 10 后面没有分号)。
isBiggerThan10(int number) => {
number > 10
};
这段代码相当于:
isBiggerThan10(int number) {
return {number > 10};
};
即:函数只包含一个表达式(重点),可以简写成胖箭头形式,=> 后面的表达式将作为函数的返回结果(或者返回 null)。
和其他语言一样,函数定义的时候都可以指定参数列表
bool isBiggerThanX(int number, int x) {
return number > x;
}
但是如果参数很多的话,就很有可能分不清楚要传入的参数对应的是那个了。Dart 有了具名参数。
bool isBiggerThanX({int number, int x}) {
return number > x;
}
调用
isBiggerThanX(number:5, x:9);
还可以有默认(可选)参数
bool isBiggerThanX({int number, int x = 10}) {
if(number == null ){
return false;
}
return number > x;
}
调用
isBiggerThanX(number:5)
此时 x 的值默认就是 10.
再调用
isBiggerThanX(number:5, x:9)
此时 x 的值就是 9.
再调用
isBiggerThanX()
此时 x 的值就是 10, 所以说具名参数都是可选的。但是可以通过增加 @required 来表明是必填项, 但是好像编译时并没有出错(?)。
bool isBiggerThanX({@required int number, int x = 10}) {
return number > x;
}
那有时候我想要的可选参数是可传可不传的,而参数比较少,不想使用具名的默认参数,怎么办呢?那就是用可选参数。
bool isBiggerThanX(int number, [int x]) {
if(x != null) {
return number > x;
}
return true;
}
当然也可以这样
bool isBiggerThanX(int number, [int x = 9]) {
return true;
}
这个时候,x 不传的话就是 9 了。
但是可选参数必须放在最后一个。对于具名的默认参数,可以不放到最后一个,任意都可以设置默认参数。
上面的函数都起了名字,Dart 当然支持不起名字的函数
List list = [1, 2, 3];
list.forEach((item) {
print('item is : $item');
}