我遇到了一个奇怪的Codecademy练习,它需要一个函数,它将一个字符串作为输入并以相反的顺序返回它.唯一的问题是你无法在stackoverflow上使用反向方法或常见答案[::-1]
.
显然在编程的现实世界中,人们很可能会使用扩展切片方法,甚至使用reversed
函数,但也许有些情况下这不起作用?
我在Q&A风格中提出了以下解决方案,以防将来对人们有所帮助.
我正在阅读Python文档,以深入了解Python语言并遇到过滤器和地图功能.我之前使用过滤器,但从未映射过,虽然我已经在SO上看到了各种Python问题.
在Python教程中阅读了它们之后,我对两者之间的区别感到困惑.例如,从5.1.3开始.功能编程工具:
>>> def f(x): return x % 2 != 0 and x % 3 != 0
...
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
Run Code Online (Sandbox Code Playgroud)
和
>>> def cube(x): return x*x*x
...
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
Run Code Online (Sandbox Code Playgroud)
这些看起来与我的功能几乎完全相同,所以我进入终端以交互方式运行Python并测试了我自己的情况.我用于map
上面的第一个和第二个实例,并且对于第一个实例(return x % 2 != 0 and x % 3 != 0
)它返回了一个布尔值而不是数字列表.
为什么map
有时会返回布尔值,有时会返回实际返回值?
有人可以向我解释一下map
和之间的区别filter
吗?
我目前有一个div与其中的其他元素结构.
类似于下面的东西;
<div id="container" style="position: relative; width: 500px; height: 500px;">
<div style="position: absolute; left: 50px; top: 50px;"></div>
<div style="position: absolute; left: 100px; top: 100px;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我试图获取相对于div的div的鼠标位置container
.
到目前为止,我有这个;
function onMousemove(event) {
x = event.offsetX;
y = event.offsetY;
};
var elem = document.getElementById("container");
elem.addEventListener("mousemove", onMousemove, false);
Run Code Online (Sandbox Code Playgroud)
如果带有id的div container
没有子节点,这可以正常工作.当container
div有子节点时,它会获得相对于孩子而不是父节点的鼠标坐标.
我的意思是,如果鼠标位于x: 51, y: 51
相对于父div 的位置,它实际上将x: 1, y: 1
使用上面给出的html相对于子div 返回.
我怎样才能实现我想要的,请不要图书馆.
编辑
tymeJV善意地说明了上面发生的事情.
我有一个有趣的场景,我需要定义一个函数,以便为另一个函数进行测试.我想测试的功能看起来像这样:
if (function_exists('foo') && ! function_exists('baz')) {
/**
* Baz function
*
* @param integer $n
* @return integer
*/
function baz($n)
{
return foo() + $n;
}
}
Run Code Online (Sandbox Code Playgroud)
我检查是否存在的foo
原因是因为它可能在开发人员的项目中定义,也可能没有定义,并且该函数baz
依赖于该函数foo
.因此,我只想baz
定义它是否可以调用foo
.
唯一的问题是到目前为止,无法编写测试.我尝试在PHPUnit配置中创建一个引导脚本,该脚本将定义一个假foo
函数,然后需要Composer自动加载器,但我的主脚本仍然认为foo
没有定义.foo
不是Composer包,我的项目不能要求.显然,Mockery也不适用于此.我的问题是,如果有更多有经验的PHPUnit遇到过这个问题并找到了解决方案.
谢谢!
PHP如何工作:
$myClass = 'App\MyClass';
$object = new $myClass;
Run Code Online (Sandbox Code Playgroud)
但这会导致错误:
$myClass = 'MyClass';
$object = new 'App\\'.$myClass;
Run Code Online (Sandbox Code Playgroud)
在第二个例子中,unexpected T_CONSTANT_ENCAPSED_STRING
抛出了一个.
事实证明,上面的例子是由于运算符优先级,因为new
它具有最高优先级,但......
同样,我可以尝试使用一个字符串进行实例化,如:
$object = new 'App\MyClass';
Run Code Online (Sandbox Code Playgroud)
并抛出同样的错误.为什么是这样?
我在做单页的应用程序,并在处理GET请求,我已经通过了X-CSRF-TOKEN
与X-Requested-With
headers.I还包括 \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class
在网络中间件组.我在api.php中的路线看起来像
Route::get('categories','Api\Categories@index')->middleware('auth:api');
Run Code Online (Sandbox Code Playgroud)
但请求指定的URL显示未经身份验证的消息.
我在学习C方面遇到了一些问题,而且我真的没有其他地方可以提出建议.我来自一系列OOP语言,例如JavaScript和主要是Python,因此C是一个重大变化,我在尝试学习基础知识方面遇到了一些障碍.我最初是从Zed Shaw的"艰难学习C"开始的,但他并没有在书中教授任何东西.是的,他让你写了很多代码并改变了一些东西,但是我不知道为什么代码会工作,而这只会导致更复杂的例子.
我遇到的主要问题是变量和指针之间的区别(我认为它是非常独特的,直到我看到一些我将在下面发布的例子,这完全模糊了两者之间的界限).
例如,我理解声明和初始化一个int
被调用的a
和一个指针,p
看起来像这样:
int a;
int *p;
a = 12;
p = &a;
Run Code Online (Sandbox Code Playgroud)
令我困惑的是当你声明看起来像指针的变量,但根本不是指针(或者它们是什么?).例如:
char *string = "This is a string";
printf("%s\n", string);
Run Code Online (Sandbox Code Playgroud)
什么string
时候定义和初始化?它是指针吗?如果是的话,为什么不在printf
函数中打印它时取消引用它?有很多像这样的例子让我很困惑.
我遇到的另一个例子没有任何意义:
int i;
scanf("%d", &i);
Run Code Online (Sandbox Code Playgroud)
i
当&符号应该引用变量的内存中的位置而不是值时,这个函数如何更新整数的值?阵列和结构变得更加复杂,这是我停下来的地方,我决定要找一些建议.
老实说,我觉得很尴尬发布这样一个菜鸟问题,但每个人都从某个地方开始.这些基础知识是我知道在继续之前需要能够理解的东西,但是当我看到与我刚刚学到的内容相矛盾的代码示例时,我很难理解它.我知道这是一个非常普遍的问题,但我希望你们中的一些人能够解释这些基础知识,或者指出我可以更好地学习/理解这一点的方向.我遇到的大多数视频教程都过于笼统,与在线文本教程相同,他们告诉你如何做某事,但不解释它,这会导致一些严重的问题.
我在资源控制器后面使用了一些网络路由。因此,路线看起来就像:
Route::resource('account', 'AccountController');
Run Code Online (Sandbox Code Playgroud)
我还有一个Web中间件,用于检查对象中user_id
是否设置了参数Request
:
if ($request->user_id) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
问题是这样的。在我的非资源路线中,我使用类似以下内容的方法:
Route::get('agentnotes/{user_id}', 'UserNoteController@getUserNotes');
Run Code Online (Sandbox Code Playgroud)
这将user_id
变量设置为预期的,并且中间件功能正常。
但是在资源路由中,即使实际的路由方法使用user_id
,中间件也看不到它。因此,例如,该AccountController::show
方法如下所示:
public function show($user_id)
Run Code Online (Sandbox Code Playgroud)
但是user_id
我认为中间件不会将其视为请求的一部分,因为它在请求到达控制器之前已经被触发。
有没有一种方法可以在不重写所有资源路由的情况下进行处理?
php ×4
laravel ×2
python ×2
api ×1
c ×1
events ×1
for-loop ×1
function ×1
javascript ×1
laravel-5.5 ×1
map-function ×1
mocking ×1
mousemove ×1
phpunit ×1
pointers ×1
reverse ×1
routing ×1
string ×1
unit-testing ×1