Mercurial > projects > dynamin
view dynamin/core/array.d @ 113:4636a64afabc default tip
Add reverse() function.
author | Jordan Miner <jminer7@gmail.com> |
---|---|
date | Sat, 19 Jan 2013 21:08:52 -0600 |
parents | 73060bc3f004 |
children |
line wrap: on
line source
/* * Copyright Jordan Miner * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file BOOST_LICENSE.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * */ module dynamin.core.array; import dynamin.core.test; import dynamin.core.string; /** * Returns true if the specified item is in the specified array and false otherwise. * * ## Examples * * assert("Hello".contains('e')); * assert(!"Hello".contains('a')); * assert(!"".contains('e')); * assert([2, 3, 7].contains(3)); * assert(![2, 3, 7].contains(0)); */ bool contains(T, U)(T[] arr, U item) { foreach(U item2; arr) { if(item == item2) return true; } return false; } unittest { assert("Hello".contains('e')); assert(!"Hello".contains('a')); assert(!"".contains('e')); assert([2, 3, 7].contains(3)); assert(![2, 3, 7].contains(0)); } /** * Reverses the items in place in the specified array. * * ## Examples * * mstring str = "ABCD".dup; * str.reverse(); * assertEqual(str, "DCBA"); * */ void reverse(T)(T[] arr) { for(int i = 0; i < arr.length / 2; ++i) { arr[i] = arr[$ - i]; } } unittest { mstring str; str = "ABCD".dup; str.reverse(); assertEqual(str, "DCBA"); str = "ABCDE".dup; str.reverse(); assertEqual(str, "EDCBA"); str = "".dup; str.reverse(); assertEqual(str, ""); }